Laravel中的许可问题
我面临许可方面的问题 传递给App\Providers\AuthServiceProvider::App\Providers{closure}()的参数1必须是App\Providers\User的实例,给定的App\User的实例,在第473行的C:\xampp\htdocs\Tweety\vendor\laravel\framework\src\light\Auth\Access\Gate.php中调用(视图:C:\xampp\htdocs\Tweety\resources\tweet.blade.php) 我只是想在那些经过认证的用户发的推文上显示删除按钮 我的控制器Laravel中的许可问题,laravel,twitter,Laravel,Twitter,我面临许可方面的问题 传递给App\Providers\AuthServiceProvider::App\Providers{closure}()的参数1必须是App\Providers\User的实例,给定的App\User的实例,在第473行的C:\xampp\htdocs\Tweety\vendor\laravel\framework\src\light\Auth\Access\Gate.php中调用(视图:C:\xampp\htdocs\Tweety\resources\tweet.bl
public function destroy(Tweet $tweet)
{
$tweet->delete();
Session::flash('success');
return redirect()->route('tweets.index')->with(['message' => 'Tweet Deleted']);
}
我的用户模型
public function tweets()
{
return $this->hasMany(Tweet::class)->latest();
}
我的刀片
@can('delete',$tweet)
<form action="{{ route('tweets.destroy',$tweet->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Delete</button>
</form>
@endcan
任何帮助都将不胜感激这看起来像是命名空间问题,并且没有正确导入用户模型的命名空间
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use App\User; // looks like you're missing this line.
use App\Tweet;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Gate::define('delete', function (User $user , Tweet $tweet){
return $tweet->user->is($user);
});
}
}
您需要更改:
@can('delete', $tweet)
致:
在AuthServiceProvider
中,是否正确导入了用户类?看起来是命名空间问题use App\User
请发布AuthServiceProvider
的完整代码是的,这是名称空间的问题,谢谢您的帮助
@can('delete', $tweet)
@can('delete')