Php 两个左键使用laravel ORM中的addselect()与同一个表连接 控制器: 型号: 表结构:
Php 两个左键使用laravel ORM中的addselect()与同一个表连接 控制器: 型号: 表结构:,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,仓库: 1 id 2 name 3 code 4 status 5 itp 6 utp 1 id 2 date 3 from_warehouse_id 4 to_warehouse_id 5 staff_id 6 itp 7 utp 仓库\转帐: 1 id 2 name 3 code 4 status 5 itp 6 utp 1 id 2 date 3 from_warehouse_id 4
仓库:
1 id
2 name
3 code
4 status
5 itp
6 utp
1 id
2 date
3 from_warehouse_id
4 to_warehouse_id
5 staff_id
6 itp
7 utp
仓库\转帐:
1 id
2 name
3 code
4 status
5 itp
6 utp
1 id
2 date
3 from_warehouse_id
4 to_warehouse_id
5 staff_id
6 itp
7 utp
问题:
SQLSTATE[42S22]:未找到列:“on子句”中的1054未知列“w1.id”
我试过给别名,但显示的是giveserror
希望有人能解决这个问题 我得到了解决方案
// Warehouse Transfer From
if (in_array('from_warehouse_id', $columns)) {
$q->addSelect(DB::raw("fromw.id as from_warehouse_id, fromw.name from_warehouse_name"))
->leftjoin(DB::raw('oops_warehouse AS fromw'), DB::raw('fromw.id'), '=', 'warehouse_transfer.from_warehouse_id');
}
// Warehouse Transfer To
if (in_array('to_warehouse_id', $columns)) {
//$q->addSelect('warehouse_transfer.to_warehouse_id', 'warehouse.name AS to_warehouse_name');
$q->addSelect(DB::raw("tow.id as to_warehouse_id, tow.name to_warehouse_name"))
->leftjoin(DB::raw('oops_warehouse AS tow'), DB::raw('tow.id'), '=', 'warehouse_transfer.to_warehouse_id');
}
我只需要使用
DB::raw()
就可以了……您缺少一些代码我已经更新了我的code
谢谢@goudelafyd您使用了全局范围吗?我没有看到这里的别名在你的代码中没有w.id这个词实际上它是w1
@goudelalfy@MarcinNabialek