99 раз из 100, когда значение не хранится, это потому, что столбец не было упомянуто в вашей модели $fillable
. Это так?
Sidenote: Добавление AUTHOR_ID, как это работает, но если вы используете этот подход для нескольких моделей, я рекомендую кодирование это один раз для всех моделей. Для этого я использую черту. Таким образом, каждый раз, когда создается запись, автор сохраняется, и у вас есть все методы для его получения в одном месте, черта ($this->creator()
, this->updator
).
Мой подход к этому заключается в следующем:
1) У меня есть два новых столбцов в моей базе данных created_by
и updated_by
2) Я использую черту так:
<?php namespace App\Models\Traits;
use Illuminate\Database\Eloquent\Model;
trait CreatedByTrait {
/**
* Stores the user id at each create & update.
*/
public function save(array $options = [])
{
if (\Auth::check())
{
if (!isset($this->created_by) || $this->created_by=='') {
$this->created_by = \Auth::user()->id;
}
$this->updated_by = \Auth::user()->id;
}
parent::save();
}
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
public function creator()
{
return $this->belongsTo('App\User', 'created_by');
}
public function updator()
{
return $this->belongsTo('App\User', 'updated_by');
}
}
3) Всякий раз, когда я хочу, чтобы модель имела эту функцию, мне просто нужно:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\CrudTrait;
class Car extends Model
{
use CrudTrait;
use CreatedByTrait; // <---- add this line
Надеюсь, что это поможет.
Нет, к сожалению, присутствует свойство $ fillable, а также 'использование CrudTrait;' что я ранее забыл:/Не знаю, почему я не могу обновить или сохранить этот параметр. –
Хм ... Тогда, может быть, попробуйте добавить его в метод AuthorCrudController :: update(), а не в FormRequest? – tabacitu
Или вы можете использовать Рюкзак для этого и добавить по умолчанию скрытое поле с этим значением. – tabacitu