Laravel中的许可问题

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

我面临许可方面的问题

传递给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)

我只是想在那些经过认证的用户发的推文上显示删除按钮

我的控制器

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