2017-04-27 62 views
0

我在laravel 5.4(庫存管理系統)中工作並且具有動態表格意味着在創建新商店時生成表格。每家商店都有自己的庫存表,其編號爲store_8_stock。我創建StoreStock模型和控制器設置表的時候它不能正常工作:Laravel:無法將`setTable`設置爲來自控制器的雄辯模型

$storeId = $item['store_id']; 
unset($item['barcode']); 
TransferList::create($item); 
$insertStock = new StoreStock; 
$insertStock->setTable('store_'.$storeId.'_stock'); 
$stock = $insertStock->where('item_id',$item['item_id'])->first(); 
if($stock != null){ 
    $stock->qty = $stock->qty + $item['qty']; 
    $stock->save(); 
}else{ 
    unset($item['item_name']); 
    unset($item['store_id']); 
    $insertStock->create($item); 
} 

$stock = $insertStock->where('item_id',$item['item_id'])->first();其工作正常,但當其對$insertStock->create($item);未來其示值誤差store_stocks table or view not found

$項目包含

array:11 [▼ 
    "barcode" => "8901023007446" 
    "item_id" => 2 
    "item_name" => "My new item" 
    "mrp" => 12.0 
    "sale_price" => 60.0 
    "purchase_price" => 50.0 
    "qty" => "2" 
    "free_item_name" => "" 
    "product_vat" => 0.0 
    "vat_status" => 0 
    "store_id" => "8" 
] 

任何人都可以告訴我我的代碼有什麼問題嗎?

回答

2

這是因爲當您在引擎蓋下使用create時,會觸發newInstance()方法,並且對象的新實例具有模型中定義的原始屬性。

也許你應該對這樣的情況下,像這樣使用:

$insertStock->fill($item)->save(); 

,使其工作。

+0

更新該值時顯示同樣的錯誤! –