如何在Laravel中为模型对象分配键和值?

时间:2018-09-26 11:34:12

标签: php laravel

我正在Laravel中进行项目。我想分配一些字段,这些字段的列键和值在多个表中相同。就像我在几乎每个表中都拥有诸如created_by,updated_by,status字段之类的通用字段一样。

我已经创建了这些键值的数组,

$common_data     = ['status' => Constants::ACTIVE,'created_by' => 1,'updated_by' => 1];

每次创建模型的新对象时,都必须手动将它们分配给该对象,例如

$intake = new Intake($data);
$intake->name = 'test;
$intake->email = 'test@gmail.com;
$intake->status = Constants::ACTIVE;
$intake->created_by = 1;
$intake->updated_by = 1;

和save()将在其他位置。

因此,有什么方法可以将这些公共字段添加到对象中,而不是拥有它。像某些推操作或其他操作。

1 个答案:

答案 0 :(得分:0)

您可以使用回调方法来监听模型事件,例如保存,创建等。发生此类事件时将触发这些功能。看下面的代码

class Intake extends Model {
protected static function boot()
{
    parent::boot();

    static::creating(function ($intake ) {
        $intake->status = Constants::ACTIVE;
        $intake->created_by = 1;
        $intake->updated_by = 1;
    });
}}

Try look at Laravel event documentation