Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“products.wishlist_id”_Php_Laravel 8 - Fatal编程技术网

Php SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“products.wishlist_id”

Php SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“products.wishlist_id”,php,laravel-8,Php,Laravel 8,SQLSTATE[42S22]:未找到列:1054 where子句中的未知列“products.wishlist_id”SQL:select*来自products,其中products.wishlist_id=1,products.wishlist_id不为null,products.deleted_at为null hasMany函数查询表中的{model_name}\u id列(在本例中为wishlist_id)。产品表缺少wishlist_id列和相关外键。我建议看一看一对多关系 您的迁移需

SQLSTATE[42S22]:未找到列:1054 where子句中的未知列“products.wishlist_id”SQL:select*来自products,其中products.wishlist_id=1,products.wishlist_id不为null,products.deleted_at为null

hasMany函数查询表中的{model_name}\u id列(在本例中为wishlist_id)。产品表缺少wishlist_id列和相关外键。我建议看一看一对多关系

您的迁移需要包括对现有products表的更新,以添加列和外键:

Schema::表'products',函数蓝图$table{ $table->unsignedbiginger'wishlist_id'; $table->foreign'wishlist_id'->引用'id'->在'wishlists'上; };
也就是说,你确定你在寻找一对多的关系吗?一个愿望列表可以有多个产品,一个产品可以在多个愿望列表中-一种关系可能是更好的选择。

您至少可以解释一下这里发生了什么。仅粘贴代码和错误消息有点粗鲁。这是否回答了您的问题@AymDev是的,我为我不合理的问题道歉,因为我第一次体验堆栈溢出。我的意思是,Where子句中找不到这个列。你能尽可能地解释我吗?非常感谢你的回答。因为我假设愿望列表ID-1可以有产品P1,并且愿望列表ID-2也可以有产品P2。但如果用户尝试在P1上再次添加,则该用户不会将P1添加到愿望列表,因为该项目已存在于愿望列表中。这样,我假设一个愿望列表可以有一个产品。你能解释一下吗,这对我来说是一个合理的解决方案吗?所以我看到的多对多对一的问题是,你有User1和User2。两个用户都有一个单独的愿望列表-愿望列表1、愿望列表2。你也有一个产品。User1将产品添加到Wishlist1。User2还希望将产品添加到Wishlist2。使用一对多设置,产品不能同时附加到两个愿望列表-产品只能属于一个愿望列表。通过多对多,产品可以有多个不同的愿望列表。
In my controller >>>

public function index() {
    $wishlist_items = Wishlist::where('user_id', Auth::user()->id)->get();
    foreach($wishlist_items as $item) {
        dd($item->getProducts()->get());
    }
}

Wishlist.php >>>

public function getProducts() {
    return $this->hasMany(Product::class);
}

Product.php >>>

public function getWishlist() {
    return $this->belongsTo(Wishlist::class);
}

Migration table >>>

Schema::create('wishlists', function (Blueprint $table) {
    $table->id();
    $table->unsignedBigInteger('product_id');
    $table->unsignedBigInteger('user_id');
    $table->timestamps();

    $table->foreign('product_id')->references('id')->on('products');
    $table->foreign('user_id')->references('id')->on('users');
});