$ casts,数组数据

I'm using $casts to save data in array to database. I have an issue with that.

How can i push data to an existing array in the database? For example i have already an array of data in my db column like: ["some_data", "another_el"] and so on and in the Controller i want to push in this array in db some other data from input.

$brand = Brand::find($request->input('brand'));

        $brand->model = $request->input('model');
        $brand->update();

Pushing data like this.

You cannot do this with Eloquent's Mass Assignment functions (update, create, etc). You must pull down your field, change it, then save the model.

$collection = collect($brand->field);
$collection->push($myNewData);
$brand->field = $collection->toJson();
$brand->save();

Way 1

    $brand = Brand::find($request->input('brand'));

    $brand->model = array_merge($brand->model, [$request->input('model')]);
    $brand->update();

Way 2 (my favorite because it encapsulates the logic)

    $brand = Brand::find($request->input('brand'));

    $brand->addModel($request->input('model'));
    $brand->update();

And on Entity:

    public function addModel($value)
    {
            $this->model = array_merge($this->model, [$value]);
    }

Optional

And on Entity (instead $casts):

    public function setModelAttribute($value)
    {
            $this->attributes['model'] = json_encode($value);
    }

    public function getModelAttribute($value)
    {
            return json_decode($value, true);
    }