18-09-1395، 10:58 ب.ظ
سلام دوستان عزیز
من میخوام قانون و وظیفه درست کنم
مثل همون rbac یی است
جدول Roles , permissions , users را ساختم
و جداول رابط permission_role , role_user را هم ساختم و مقدار دهی کردم
حالا اومدم داخل یکی از کنترلر هام
و بعد داخل AuthServiceProvider
و سر انجام
طوری کار کردم که کاربر یک میتونه کارت یک رو ببینه و کاربر 2 کارت 2 و ...
ولی الان تا لاگین میشه کاربر یک میتونه همه رو ببینه
در این کد
یعنی بجای name یک را برمیگرداند
این کدی که آقای عظیمی نوشته اند تو آموزش لاراول و خودشون هم نتیجه نگرفتند ولی بروی خودشونم نیاوردند
کسی هست بتونه راهنمایی کنه ممنون میشم
من میخوام قانون و وظیفه درست کنم
مثل همون rbac یی است
جدول Roles , permissions , users را ساختم
و جداول رابط permission_role , role_user را هم ساختم و مقدار دهی کردم
حالا اومدم داخل یکی از کنترلر هام
auth()->loginUsingId(1);و با این دستور کاربر شماره یک را لاگین کردم
و بعد داخل AuthServiceProvider
public function boot() { $this->registerPolicies(); foreach ($this->getPermission() as $permission) { Gate::define($permission->name , function($user) use ($permission){ return $user->hasRole($permission->roles); }); } } protected function getPermission() { return Permission::with('roles')->get(); }و بعد در مدل User هم
public function hasRole($role) { if(is_string($role)) { return $this->roles->contains('name' , $role); } foreach ($role as $r) { if($this->hasRole($r->name)) { return true; } } }
و سر انجام
@can('edit-forum') <a href="/notes/{{ $note->id }}/edit"> @endcan {{ $note->name }} @can('edit-forum') </a> @endcan
طوری کار کردم که کاربر یک میتونه کارت یک رو ببینه و کاربر 2 کارت 2 و ...
ولی الان تا لاگین میشه کاربر یک میتونه همه رو ببینه
در این کد
public function boot() { $this->registerPolicies(); foreach ($this->getPermission() as $permission) { Gate::define($permission->name , function($user) use ($permission){ return $user->hasRole($permission->roles); }); } }وقتی که من بجای return از echo استفاده کردم 1 چاپ شد
یعنی بجای name یک را برمیگرداند
این کدی که آقای عظیمی نوشته اند تو آموزش لاراول و خودشون هم نتیجه نگرفتند ولی بروی خودشونم نیاوردند
کسی هست بتونه راهنمایی کنه ممنون میشم