我正在使用 Laravel eloquent ORM,并且定義了一些關(guān)系,如下所示: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); }}關(guān)系模型為: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'); }}當(dāng)我嘗試使用定義的關(guān)系獲取數(shù)據(jù)時(shí),問題就出現(xiàn)了:Item::with('backorderQuantities')->where('PRIMVNDR', Auth::user()->vendor_id)這樣做會(huì)導(dǎo)致此錯(cuò)誤:[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Conversion failed when converting the varchar value 'X123RECORD231' to data type int我可以完成這項(xiàng)工作,而無(wú)需預(yù)先加載執(zhí)行 2 個(gè)查詢,然后循環(huán)并檢查關(guān)系,如下所示:foreach ($objects as $view) { if($view->backorderQuantities){ // do things } }但這給我?guī)?lái)了很多問題,而且更像是創(chuàng)可貼而不是合法的解決方案。我想知道是否有解決此問題的方法,或者 SQL 服務(wù)器和 MSSQL 服務(wù)器之間的兼容性是否無(wú)法實(shí)現(xiàn)。
1 回答

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
仍然相當(dāng)確定這是一個(gè)兼容性問題,但這是代碼以某種方式自行解決的奇怪實(shí)例之一。
- 1 回答
- 0 關(guān)注
- 149 瀏覽
添加回答
舉報(bào)
0/150
提交
取消