Laravel框架常用脚本记录

Laravel常见问题或常用脚本

允许跨域请求

原理:

	#设置header参数
	header('Access-Control-Allow-Origin: *');
	header("Access-Control-Allow-Credentials: true");
 	header("Access-Control-Allow-Methods: *");
 	header("Access-Control-Allow-Headers: Content-Type,Access-Token");
 	header("Access-Control-Expose-Headers: *");

Laravel常用方式

1.创建中间件
$ php artisan make:middleware AccessControlAllowOrigin
2.注册中间件
在 app/Http/Kernel.php 类中的 $middleware 属性里列出这个中间件类
	[	
		......
		'cors' => \App\Http\Middleware\AccessControlAllowOrigin::class,
	]
3.应用刚才的中间件即可

>>常用命令
php artisan make:model Model/Tag -m    //使用控制台输入命令,创建模型,加上 -m就是同时创建Migration
>>自定义命令
php artisan mre:table biaoming  //数据库重置单张表结构
Laravel ORM 常见理解
class User extends Model
{
    #以下属性和方法都不是必须的,但是一般都要按需求定义一些
    
 
    //定义关联的表名,不定义的话默认此模型关联的表为 模型名s (users)
    protected $table = 'user';
   
 
    /******字段相关*******/
    #定义主键字段名,默认是id
    protected $primaryKey = 'uid';
    #定义字段白名单,允许操作表中的哪些字段
    protected $fillable = ['uid','name'];
    #定义字段黑名单,不允许操作表中哪些字段
    protected $guarded = [];
    //1、使用model::create([])等方法直接对orm对象操作使,必须定义$guarded或者$fillable
    //2、使用$m = new model();然后$m->save()的方式不需要定义
    //3、简便的方式就是定义$fillable = [];
    
    #定义隐藏的字段
    protected $hidden = [];
    
    /******时间管理******/
    #定义是否默认维护时间,默认是true.改为false,则以下时间相关设定无效
    public $timestamps = true;
    #定义数据行创建时间和修改时间的字段名称。默认created_at,updated_at,没有设null
    const CREATED_AT = 'created';
    const UPDATED_AT = null;
 
    #此属性决定插入和取出数据库的格式,默认datetime格式,'U'是int(10)
    protected $dateFormat = 'U';
    //如果不设置,无论存储格式是datetime还是int,则取出时是Carbon对象
    //Carbon对象返给前端时自动变为datetime字符串,后端谨慎处理
 
    #如果数据库存的是datetime或者没定义$dateFormat,又想取出的时候是int...
    public function getDates(){
        return ['created_at'];
    }
    //这里只能是created_at,updated_at,不是你自己的字段
    
    #软删除字段deleted_at
    use Illuminate\Database\Eloquent\SoftDeletes;
    protected $dates = ['deleted_at'];
    #查询数据时会自动排除掉deleted_at非null的数据,若向带上使用User::withTrashed()
    #删除某条数据时使用$user->delete()然后save()即可。deleted_at由null变为时间.
 
 
 
 
    /******序列化******/
    #toArray和toJson就是序列化方法,都是递归的。
 
    #把ORM查询的数据自动转换。例如把int转boolean,时间戳转时间,json转成数组等。
    protected $casts = [
        'created'   => 'date:Y-m-d',
        'updated'   => 'datetime:Y-m-d H:i',
        'jsonData'  => 'array',
        'intSwitch' => 'boolean'
    ];
    //关于这个时间的序列化,当作为接口返回的时候有效,如果直接直接页面渲染无效.
    //时间序列化,当$timestamp为true时,无论是update还是new的方式插入新数据,都要是datetime
    //注意取出的jsonData即是数组,而插入jsonData时也得是数组,不要json_encode
 
 
 
 
    /**自定义数据返回***/
    #再如果,你想拿出来就是'2018/08/08 12:00'这种自定义格式,好比'sa_time'
    public function getSaTimeAttribute($value){
        return date('Y/m/d H:i',$value);
    }
    //注意方法名是根据字段来的。同理,这种方法可以处理任何字段
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值