【发布时间】:2015-09-21 05:38:31
【问题描述】:
我正在尝试在用户和产品这两个表之间创建一个数据透视表。但是,当我运行 $user->Cart()->Get(); 时,出现以下错误:
Connection.php 第 631 行中的 QueryException:SQLSTATE[HY000]:常规 错误:1 列名不明确:main.cart.products_id(SQL:选择 "cart".*, "cart"."user_id" as "pivot_user_id", "cart"."products_id" as 来自“cart”的“pivot_products_id”内部连接“cart”到“cart”。“id”= "cart"."products_id" 其中 "cart"."user_id" = 2)
这是用户模型:
class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
...
public function Cart()
{
return $this->belongsToMany('App\Cart', 'cart', 'user_id', 'products_id');
}
}
产品型号:
class Products extends Model
{
...
public function Cart()
{
return $this->belongsToMany('App\Cart', 'cart', 'products_id', 'user_id');
}
}
购物车模型:
class Cart extends Model
{
//
protected $table = 'cart';
public function Products()
{
return $this->hasMany('App\Products', 'products', 'user_id', 'products_id');
}
public function User()
{
return $this->hasMany('App\Products', 'users', 'user_id', 'products_id');
}
}
购物车架构:
Schema::create('cart', function (Blueprint $table) {
$table->integer('products_id')->unsigned();
$table->foreign('products_id')->references('id')->on('products')
->onUpdate('cascade')->onDelete('cascade');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
});
【问题讨论】:
标签: php sql laravel eloquent pivot-table