Массовое назначение Laravel не вставляет логическое значение - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь выполнить массовое задание с помощью laravel like. Но у меня есть поле с именем «скрытый», которое в базе данных является TINYINT. С моего внешнего интерфейса я получаю логическое значение обратно. При массовом присвоении с помощью параметра «hidden» => TRUE поле в БД по-прежнему равно 0. Когда я преобразую его обратно в целое число («hidden» => 1), поле сохраняется как 1.

Я добавил «скрытый» к моему $ fillable.

P.S. Когда я пытаюсь вставить его непосредственно в БД с помощью mysql с логическим значением, он работает.

Кто-нибудь знает, что не так?

РЕДАКТИРОВАТЬ: это мой код,

хранилище публичных функций (Request $ request) {

Группа классов расширяет модель { использовать Уведомляемый;

const CREATED_AT = 'created';
const UPDATED_AT = 'updated';

protected $table = 'groups';

protected $casts = [
    'hidden' => 'boolean',
];

protected $fillable = [
    'hidden',
     // etc
];

}

public function store(Request $request) {
    $post = $request->all();
    $group_id = Group::create($post);
}

Front-end - это проект Vue. Так что Laravel - это мой API. И я получаю ВЕРНО из $ post ['hidden'].

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Измените тип базы данных на Bool. Если вы хотите сделать это с помощью миграции, вы можете сделать: $ table-> boolean (‘hidden’);

0 голосов
/ 29 августа 2018

Вам необходимо разыграть логическое значение в модели:

class YourModel extends Model
{

    protected $casts = [
        'hidden' => 'boolean',
    ];
}

Это сообщит Laravel, что вы хотите, чтобы столбец hidden рассматривался как логическое значение, а значения, такие как 0 и 1, будут возвращены как истина / ложь и истина / ложь, сохраненные как 0/1. Вы можете прочитать больше в Laravel doc mutators .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...