我试着使用laravel中的relationship来检索数据,并且我一直都会得到这个错误。
找不到列:1054未知列“orders.customers\u id”
在“where子句”(SQL:select*fromorders
where)中orders
customers_id
输入(1、2、3、4、5、6、7、8、9、10)
在这之前我用的是这些代码:
$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;
它返回我想要的确切结果是:
这是我的顾客桌:
订单表
命令
class Orders extends Model
{
public function customer(){
return $this->belongsTo(Customers::class);
}
}
客户
class Customers extends Model
{
public function order(){
return $this->hasMany(Orders::class);
}
数据控制器
class DataController extends Controller
{
public function all()
{
$All = Customers::with('order','order.customer_id')->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);
最佳答案
你能试试这个吗
订单模型
class Orders extends Model
{
public function customer(){
return $this->belongsTo(Customers::class, 'customer_id');
}
}
数据控制器
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);
我刚把外键放进模型里。我不完全确定它应该在
Order Model
中还是在Customer Model
中,无论哪种方式都可以尝试这两种方式。希望有帮助!