【问题标题】:Laravel 8 - I got this error 'SQLSTATE[42S02]' how can I solve this?Laravel 8 - 我收到此错误“SQLSTATE [42S02]”我该如何解决?
【发布时间】:2021-06-29 17:27:36
【问题描述】:

我正在尝试在没有任何 laravel libray 的情况下跟踪系统。提交表单时出现此错误。我该如何解决?我认为错误与我的用户模型和我的关注模型关系有关,但我无法解决。

我的错误是:

SQLSTATE[42S02]:未找到基表或视图:1146 表 'muzik.follows' 不存在(SQL:插入follows (following_id, follower_id, updated_at, created_at) 值 (12, 30, 2021-04-02 22:32:50, 2021-04-02 22:32:50))

My User 模型包含以下关系:

public function follows(){
        return $this->hasMany('App\Models\Follow');
    }

My User 模型包含以下关系:

public function user(){
        return $this->belongsTo('App\Models\User');
    }

我的控制器是:

public function follow(Request $request){
        $request->validate([
            'follower_id'=>['required'],
            'following_id'=>['required'],
        ]);

        $follower_id = $request->follower_id;
        $following_id = $request->following_id;
        

        $save = Follow::create([
            'following_id' => Auth::user()->id,
            'follower_id' => $follower_id,
        ]);

        if($save){
            return back();
        }else{
            return back();
        }
    }

【问题讨论】:

标签: php laravel


【解决方案1】:

检查您的“关注”模型,您可能需要指定表名: protected $table='tableWhereYouSaveFollows';

【讨论】:

  • 我在这个项目中还有一个像这样的跟随系统的关系,它正在工作,但这个模型的关系不起作用。不知道问题出在哪里
【解决方案2】:

您是否检查过您的迁移我认为您没有创建 Follow 表,如果您尝试在模型中这样指定您的表:

class follows extends Model{
    public $table = "follow";

【讨论】:

    【解决方案3】:

    我认为您的追随表不存在,首先创建您的追随表,然后将其添加到您的追随模型中:

    use Illuminate\Database\Eloquent\Model;
    
    class Follow extends Model
    {
        protected $table="follows";
       
        //---Guarded
        protected $guarded = [];
    
        //---User Function
        public function user(){
            return $this->belongsTo('App\Models\User');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 2020-01-22
      • 1970-01-01
      • 2022-12-21
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多