我正在使用 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); }}關系模型為: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'); }}當我嘗試使用定義的關系獲取數據時,問題就出現了: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 } }但這給我帶來了很多問題,而且更像是創可貼而不是合法的解決方案。我想知道是否有解決此問題的方法,或者 SQL 服務器和 MSSQL 服務器之間的兼容性是否無法實現。
添加回答
舉報
0/150
提交
取消