我有一個包含日期和註釋的採購表以及purchaseId作爲採購表的外鍵的purchasedetail表。在這兩個模型表之間的關係是:Laravel 5一對多關係主數據和父數據CRUD
採購模式: -
use Illuminate\Database\Eloquent\Model;
class Purchase extends Model {
public function purchasedetails() {
return $this->hasMany('App\Models\Purchasedetail', 'PurchaseId', 'Id');
}
}
和
Purchasedetail模型: -
use Illuminate\Database\Eloquent\Model;
class Purchasedetail extends Model {
public function purchase() {
return $this->belongsTo('App\Models\Purchase', 'PurchaseId', 'Id');
}
}
如何創建,更新和刪除這兩個表中的數據與關係? 我的主要問題是當我向控制器發送數據並嘗試創建時,創建主頁面數據,但無法創建父表格數據或更新它。 我使用Laravel 5.
我控制器的一些代碼:
$purchase = new Purchase();
$purchase->Date = Input::get('Date');
$purchase->Comment = Input::get('Comment');
$purchase->purchasedetails = Input::get('Purchasedetail');
$purchase-> save();
if (count($purchase->purchasedetails) != 0) {
foreach ($purchase->purchasedetails as $v) {
$purchasedetail = new Purchasedetail();
$purchasedetail->ItemId = $v->ItemId;
return $v->ItemId;
}
}
$purchase-> Purchasedetail()->save($purchasedetail);
我得到這個錯誤的回報:
ErrorException在helpers.php線703的preg_replace():參數 不匹配,pattern是一個字符串,而替換是一個數組。那 意味着$ purchase-> save()不可能。這裏我從Input :: get('Purchasedetail')獲得一個數組列表 。
那麼我現在可以做什麼?
那麼它只能存儲一個數據辛格運河和所有其他數據定義null作爲項目Id是在分貝空,它應該是1。我需要插入列表數據。在Input :: get('Purchasedetail')中,它實際上得到的不是一行數據的數組列表。 –
我編輯了我的答案。 – kotapeter
您的代碼很好,但只有Id和Purchase_Id插入purchasedetails表中。其他數據呢?例如我有ItemId,Quantity,詳細信息表。我使用的代碼如下所示:foreach(Input :: get('Purchasedetail')as $ purchasedetails){ \t $ purchasedetail = new Purchasedetail(); \t $ purchasedetail-> ItemId = $ purchasedetails-> ItemId; \t $ purchasedetail-> GradeId = $ purchasedetails-> GradeId; \t $ purchasedetail-> Quantity = $ purchasedetails-> Quantity; \t $ purchase-> purchasedetails() - > save($ purchasedetail); } .....但現在沒有數據插入。你能解答爲什麼嗎? –