laravel知识点笔记(五)

本文介绍 Laravel 框架中的用户验证方法,包括名字、邮箱及密码的验证规则,以及如何实现用户登录和登出功能。同时,还详细讲解了如何利用 Laravel 的策略功能来管理应用的权限控制,并探讨了模型关联、排序、预加载等高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名字独立性验证:

'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())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值