[英]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.