php - Laravel 4,如何防止 Eloquent 模型处理某些属性?

标签 php laravel laravel-4 eloquent

class User extends Eloquent {

    protected $table = 'my_users';

    // The 'my_users' table does *not* provide this column.
    protected $computedValue;

    public function doSomething() {
        // Anyway, for some reason, i need the property to exist in the model.
        $this->computedValue = 'foo';
    }
}

当我这样做时User::save() ,会触发错误,因为 Eloquent 正在尝试 insert into my_users (computedValue) values('foo')

实际上,我在触发保存之前取消设置属性。是否有其他方法(除了监听保存事件以取消设置之外),例如

protected $discard = array('computedValue', 'anyOtherFieldNotToMap');

最佳答案

您可以尝试为该成员变量指定默认值。

protected $computedValue = false;

引用 Laravel 论坛 Setting transient properties on Eloquent models without saving to database?

似乎对那张海报有用。

关于php - Laravel 4,如何防止 Eloquent 模型处理某些属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344089/

上一篇:C 循环指针

下一篇:Emacs - 无法映射 C-[

相关文章:

php - Laravel 更新不更新表

php - 从 Laravel 4 中的模型预先加载

testing - Laravel 4 - 单元测试

php - Ajax 请求在我的 php 代码中不起作用

php - 随机为我网站的每个页面分配一个图像?

mysql - Laravel 多对多关系OrderBy

laravel - 在 Laravel Vapor Docker 运行时中运行 Puppeteer 和 Browsershot 的问题

javascript - 使用自动提交过帐值不起作用

javascript - 使用 JS 和 PHP 更改弹出背景图像

php - 计算指定时间间隔的列总和