BRo*_*ose 6 php laravel eloquent
我正在使用 Laravel eloquent ORM,并且我定义了一些关系:
class Item extends Model
{
protected $table = 'IV00102';
protected $primaryKey = 'ITEMNMBR';
protected $trimmableAttributes = ['ITEMNMBR', 'PRIMVNDR'];
public function backorderQuantities(){
return $this->hasOne(BackorderQuantity::class, 'ITEMNMBR', 'ITEMNMBR')->where('SOPTYPE', 5);
}
}
Run Code Online (Sandbox Code Playgroud)
和关系模型为:
class BackorderQuantity extends Model
{
protected $table = 'SOP10200';
protected $primaryKey = 'ITEMNMBR';
protected $trimmableAttributes = ['ITEMNMBR', 'SOPNUMBE', 'SOPTYPE', 'QUANTITY', 'QTYREMAI'];
public function item(){
return $this->belongsTo(Item::class, 'ITEMNMBR', 'ITEMNMBR');
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用定义的关系获取数据时出现问题:
Item::with('backorderQuantities')->where('PRIMVNDR', Auth::user()->vendor_id)
这样做会导致此错误:
[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Conversion failed when converting the varchar value 'X123RECORD231' to data type int
我可以在不预先加载执行 2 个查询然后循环并检查关系的情况下完成这项工作,如下所示:
foreach ($objects as $view) {
if($view->backorderQuantities){
// do things
}
}
Run Code Online (Sandbox Code Playgroud)
但这给我带来了许多问题,更像是创可贴而不是合法的修复。我想知道是否有解决方案,或者 SQL 服务器和 MSSQL 服务器之间的兼容性是否会失效。
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |