簡體   English   中英

如何使用 Eloquent Laravel 5.1 自定義新屬性?

[英]How to custom new property with Eloquent Laravel 5.1?

我使用以下腳本來更新現有的帖子模型:

$post = Post::find($postId);
$post->title = $title;
$post->description = $description;
$post->save();

但是我想只在Post對象中存儲另一個進程的old_title屬性,所以我在重置$post->old_title = $post->title之前添加$post->old_title = $post->title title 。 然后腳本看起來像:

$post = Post::find($postId);
$post->old_title = $post->title;
$post->title = $title;
$post->description = $description;
$post->save();
// Another process

所以我得到了錯誤Column not found: 1054 Unknown column 'old_title' in 'field list'
如何忽略這個屬性?
對不起我的英語不好

這將讓您為模型添加除 db 中的列以外的其他屬性

class MODEL_NAME extends Eloquent {

    protected $table = 'TABLE_NAME';
    protected $appends = array('APPENDED_VALUES');

}

如果您編輯 post 模型的遷移在數據庫表中添加“old_title”字段並嘗試使用$post->title 的更新 old_title值,則更好 它將幫助您跟蹤用戶的更新模式並對其進行一些操作。

在長期使用 Laravel 之后,我從HasAttributes trait 中找到了getOriginal()函數,該函數包含在HasAttributes模型中。
通過使用保存的模型對象$post (不要調用$post->fresh() ),我可以檢索帖子的舊標題

  $oldTitle = $post->getOriginal('title');

暫無
暫無

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

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