名字独立性验证:
'name'=>'required|min:3|unique:users,name' //users为表名,name为字段
email格式
'email'=>'required|unique:email,name|email',
密码(字段)验证
'password'=>'require|min:6|max:10|confirmed'
密码加密:把明文转化为密文
$password = bcrypt(\request('password'));
登陆
$user = \request(['email','password']);
$is_remember = \request('is_remember');
if(\Auth::attempt($user,$is_remember)) //第一个参数是一个数组,会跟你模型表中的数据进行比对,第二个参数是是否记住用户,下次登录不用输入用户名和密码了
Auth:logout();//登出
$user = Auth::user(); //获取已经通过认证的用户
$id = Auth::id(); //获取已经通过认证的用户的ID
存用户id
$user_id = \Auth::id();
模型关联:laravel默认如下代码,后面两个参数可以省略
return $this->belongsTo('App\User','user_id','id'); //user_id为外键 ,id为关联表主键
使用时候:{{$post->user->name}}
创建权限:
php artisan make:policy(命令行)
首先在policies/xxx.php文件中编写权限控制
public function __construct()
{
//
}
//修改权限
public function update(User $user,Post $post)
{
return $user->id == $post->user_id;
}
public function delete(User $user,Post $post)
{
return $user->id == $post->user_id;
}
}
然后在providers/AuthServiceProvider中与模型注册
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
'App\Post'=>'App\Policies\PostPolicy',
];
控制器中
在视图中用@can,如果没有权限,则不会显示can中的区块视图
模型关联:
排列:
return $this->hasMany('App\Comment')
->orderBy('created_at,','desc'); //按照创建时间降序排列
关联模型可以直接
$post->comments()->save($comment);
模型预加载(有关联的时候最好预加载)
模型关联计数
$posts=Post::orderBy('created_at','desc')
->withCount("comments")->paginate(6);
在视图中{{$post->comments_count}}
firstOrCreate:先查找数据库是否有这个数据,如果有就查找出来,如果没有就创建出来
Zan::firstOrCreate($param);
视图中判断是否存在:
@if($post->zan(\Auth::id())->exists())