簡體   English   中英

Laravel 5雄辯的模型不會讓我更新

[英]Laravel 5 eloquent model won't let me update

我確實在數據庫中設置了邀請表。 我將它用於其他目的,例如添加更多......

我的目標:用字段的新值更新第一條記錄:

我試過了:

$invitation = new MemberInvitation();
$invitation1 = $invitation->find(1);
$invitation1->status = 'clicked';
$invitation1->save();

並且:

$invitation1 = \App\Model\MemberInvitation::find(1);
$invitation1->status = 'clicked';
$invitation1->save();

兩者都以:

Creating default object from empty value

編輯:

這段代碼正確地工作和更新了我的記錄 - 我不能通過Eloquent的模型來做到這一點:

\DB::table('member_invitations')->where('id', '=', $member_invitation->id)
                    ->update(array('status' => 'clicked', 'member_id' => $member->id));

我錯過了什么?

試試這個。

$invitation = MemberInvitation::findOrFail(1);
$invitation->status = 'clicked';
$invitation->save();

如果這不起作用,請顯示您的模型

find(1)並不意味着“給我第一條記錄”,它意味着“給我第一條記錄,其中id = 1”。 如果您沒有id為1的記錄,則find(1)將返回null 當您嘗試在null上設置屬性時,您會收到一條PHP警告消息“從空值創建默認對象”。

如果你真的只想獲得第一條記錄,你可以使用first()方法:

$invitation = \App\Model\MemberInvitation::first();

如果需要獲取具有特定ID的記錄,可以使用find()方法。 例如,要將您的工作數據庫代碼轉換為Eloquent,它看起來像:

$invitation = \App\Model\MemberInvitation::find($member_invitation->id);
$invitation->status = 'clicked';
$invitation->member_id = $member->id;
$invitation->save();

根據您5月15日的回復,答案很明顯。

模型中的“可填充”屬性為空。 確保將“status”放在該數組中。 不在此數組中的屬性無法修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM