我正在尝试使用laravel中的关系来检索数据,并且一直出现此错误。
找不到列:1054未知列'orders.customers_id' 在“ where子句”中(SQL:从
mount -t cifs -o username=[USER],password=[PASSWORD] //[HOST]/[SHARE] /[MOUNT_POINT]
中选择* wherejournalctl
。orders
in(1、2、3、4、5、6、7、8、9、10))
在此之前,我使用以下代码:
orders
订单
customers_id
客户
$data = DB::table('customers')
->join('orders', 'orders.customer_id', 'customers.id')
->get();
// convert to json string
$data = json_decode(json_encode($data), true);
return $data;
DataController
class Orders extends Model
{
public function customer(){
return $this->belongsTo(Customers::class);
}
}
答案 0 :(得分:2)
你能试试这个吗
订单模型
class Orders extends Model
{
public function customer(){
return $this->belongsTo(Customers::class, 'customer_id');
}
}
DataController
class DataController extends Controller
{
public function all()
{
$All = Customers::order()->paginate(10);
return response()->json([
'code' => 0,
'success' => true,
'data' => $All,
'pagination' => [
'current_page' => $All->currentPage(),
'last_page' => $All->lastPage(),
'prev_page_url' => $All->previousPageUrl(),
'next_page_url' => $All->nextPageUrl(),
'per_page' => $All->perPage(),
'total' => $All->total(),
'count' => $All->count(),
]
], 200);
我已经将外键放在模型中了。我不完全确定它应该以{{1}}还是Order Model
的方式尝试两者。
希望有帮助!
答案 1 :(得分:2)
从order.customer_id
删除Customers::with('order','order.customer_id')->paginate(10);
应该是
Customers::with('orders')->paginate(10);
由于客户可以有很多订单,因此最好将您的关系命名为orders
class Customers extends Model
{
public function orders()
{
return $this->hasMany(Orders::class);
}
}
答案 2 :(得分:2)
在我的控制器中
$All = Customers::with('order')->paginate(10);
return response()->json([
'code' => 0,
'success' => true,
'data' =>$All
], 200);
客户模型
class Customers extends Model
{
public function order(){
return $this->hasMany(Orders::class,'customer_id','id');
}
}
订单模型
class Orders extends Model
{
public function customers(){
return $this->belongsTo(Customers::class,'customer_id','id');
}
}
及其作品。
但是还有一件事我不理解。它的工作要么在Customers model
或Orders model
中定义关系,要么在两者中定义关系