Laravel 8 - 我收到此错误“SQLSTATE[42S02]”,我该如何解决?

时间:2021-04-02 22:48:42

标签: php laravel

我正在尝试在没有任何 Laravel 库的情况下进行跟随系统。提交表单时出现此错误。我该如何解决?我认为错误是关于我的用户模型和我的跟随模型关系,但我无法解决。

我的错误是:

<块引用>

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

我的用户模型包含以下关系:

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

我的用户模型包含以下关系:

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();
        }
    }

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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