在laravel模型中设置属性

时间:2016-07-04 12:30:07

标签: php laravel laravel-5 eloquent

我有以下Post模型。

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = [
        'app_id',
        'title',
        'content'
  ];

    private $app_id;

    public function __construct()
    {
        $this->app_id = 43;
    }

}

我正在尝试使用以下代码保存新帖子:

  $post = new Post();
  $post->title="Test title";
  $post->content="Test content";
  $post->save();

这会被保存,但app_id不会被保存。有什么想法为什么它在我新建对象时不会被设置?

2 个答案:

答案 0 :(得分:2)

您不应该定义 private $ app_id; 。如果你这样做,当你试图在'app_id'属性上设置值时,Laravel的魔法方法将不起作用。

答案 1 :(得分:1)

试试这个

$this->attributes['app_id'] = 43;