【发布时间】:2020-03-16 04:05:33
【问题描述】:
控制器:
$warehouse_transfer = WarehouseTransfer::mySelect(array('date', 'from_warehouse_id', 'to_warehouse_id'))
->where('warehouse_transfer.id', $id)
->first();
型号:
public function scopeMySelect($q, $columns = array()) {
$q->addSelect("warehouse_transfer.id")
// date
if (in_array('date', $columns)) {
$q->addSelect(DB::raw("DATE_FORMAT(oops_warehouse_transfer.date, '%d-%m-%Y') as date"));
}
// Warehouse Transfer From
if (in_array('from_warehouse_id', $columns)) {
$q->addSelect("warehouse_transfer.from_warehouse_id");
$q->addSelect('warehouse_transfer.from_warehouse_id', 'w1.name AS from_warehouse_name');
->leftJoin('warehouse As w1', 'w1.id', '=', 'warehouse_transfer.from_warehouse_id');
}
// Warehouse Transfer To
if (in_array('to_warehouse_id', $columns)) {
$q->addSelect("warehouse_transfer.to_warehouse_id");
$q->addSelect('warehouse_transfer.to_warehouse_id', 'w2.name AS to_warehouse_name');
->leftJoin('warehouse AS w2', 'warehouse_transfer.to_warehouse_id', '=', 'w2.id');
}
// Warehouse Transfer Staff Name
if (in_array('staff_name', $columns)) {
$q->addSelect("staff.name as staff_name")
->leftjoin('staff', 'staff.id', '=', 'warehouse_transfer.staff_id');
}
// Warehouse Transfer ITP
if (in_array('itp', $columns)) {
$q->addSelect("warehouse_transfer.itp");
}
// Warehouse Transfer UTP
if (in_array('utp', $columns)) {
$q->addSelect("warehouse_transfer.utp");
}
}
表结构:
warehouse:
1 id
2 name
3 code
4 status
5 itp
6 utp
warehouse_transfer:
1 id
2 date
3 from_warehouse_id
4 to_warehouse_id
5 staff_id
6 itp
7 utp
问题:
SQLSTATE[42S22]:找不到列:1054 'on 子句'中的未知列 'w1.id'
我尝试过给出别名,但它给出的 error 已经显示
希望有人能解决这个问题...!!
【问题讨论】:
-
你缺少一些代码
-
我已经更新了我的
code谢谢@GoudaElalfy -
您使用任何全局范围吗?我在这里看不到
w别名 -
您的代码中没有 w.id 字
-
其实是
w1@GoudaElalfy @MarcinNabialek
标签: php mysql laravel eloquent