douwen7603 2017-10-05 07:30
浏览 173
已采纳

如何在Laravel授权中将数字传递给中间件“can”

based on documentation https://laravel.com/docs/5.5/authorization#via-middleware

use App\Post;

Route::put('/post/{post}', function (Post $post) {
    // The current user may update the post...
})->middleware('can:update,post');

the 'post' in 'can:update,post' is variable passed from '{post}'.

im trying to use middleware('can:update,1'). its not working. maybe its search for '$1' variable, how to pass number '1' to 'can' middleware?

update this is the gate:

    Gate::define('update', function ($user, $role){
        $id = $user->id;
        $roles = $user::find($id)->roles()->get();
        $roleid = $roles[0]->pivot->role_id;
        //above code just for get role id, and $role_id is 1
       return $roleid === $role;
    });
  • 写回答

1条回答 默认 最新

  • dpu66046 2017-10-05 07:44
    关注

    Probably you don't have Policy created for Post.

    You can create by command:

    php artisan make:policy PostPolicy --model=Post
    

    and then implement method update in that policy.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)