Laravel Eloquent创建空字段

时间:2016-06-26 11:19:30

标签: laravel laravel-5 eloquent

class Product extends Model
{
    use SoftDeletes;
    protected $dates = ['deleted_at'];
    public $timestamps = true;
    protected $fillable = ['name'];
    protected $connection = 'pos';

    public function __construct()
    {
        config(['database.connections.pos.database' => 'pos_1']);
        parent::__construct();
    }
}

Product::create(['name' => 'Snack']);

on my db id = 1,name = null,created_at =' 2016-06-26 18:30:24',updated_at =' 2016-06-26 18:30:24& #39;,deleted_at = null

为什么name = null?

更新帖子

在我使用

时有效
$p = new Product();
$p->name = 'Snack';
$p->save();

但为什么Product::create(['name' => 'Snack']);填充为null?

更新帖子(已解决)

啊我错过了传递数组作为该构造函数的参数。

        public function __construct(array $attributes)
        {
            config(['database.connections.pos.database' => 'pos_1']);
            parent::__construct($attributes);
        }

1 个答案:

答案 0 :(得分:2)

可能原因是你再次没有运行父构造函数。

而不是:

<tr><td>{{.FullFilePath}}{{.FileName}}</td></tr>

你应该使用:

public function __construct()
{
    config(['database.connections.pos.database' => 'pos_1']);
}

请注意,对于您的Eloquent模型,您还具有public function __construct() { config(['database.connections.pos.database' => 'pos_1']); parent::__construct(); } 属性,因此您可以设置数据库连接的名称。