Laravel хранилище (обнуляемая ошибка проверки) - PullRequest
0 голосов
/ 14 апреля 2020

В настоящее время у меня есть следующая функция магазина

public function store()
{
    $data = request()->validate([
        'name' => 'required',
        'description' => 'required',
        'url' => ['required', 'url'],
        'image' =>  ['nullable', 'image'],
    ]);

    $DB1 = new \App\Part1();
    $DB1->name = $data['name'];
    $DB1->save();

    $DB2 = new \App\Part2();
    $DB2->db1_id = $DB1->id;
    $DB2->description = $data['description'];
    $DB2->url = $data['url'];
    $DB2->image = $data['image'];
    $DB2->save();
}

Каждый раз, когда у меня появляется пустое изображение, я получаю следующую ошибку:

ErrorException
Undefined index: image

Я думал, что nullable Правило было бы достаточно.

Единственное, что я нашел, это проверил, пусто ли изображение, но мне кажется, что я делаю это неправильно:

if (request('image')) {
    $image = $data['image'];
} else {
    $image = NULL;
}

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Используйте isset или empty метод или ?? оператор

public function store()
{
    $data = request()->validate([
        'name' => 'required',
        'description' => 'required',
        'url' => ['required', 'url'],
        'image' =>  ['nullable', 'image'],
    ]);

    $DB1 = new \App\Part1();
    $DB1->name = $data['name'];
    $DB1->save();

    $DB2 = new \App\Part2();
    $DB2->db1_id = $DB1->id;
    $DB2->description = $data['description'];
    $DB2->url = $data['url'];
    $DB2->image = isset($data['image']) ? $data['image'] : null;
    // or $DB2->image = !empty($data['image']) ? $data['image'] : null;
    // or $DB2->image = $data['image'] ?? $data['image'];
    $DB2->save();
}

Надеюсь, это поможет вам

0 голосов
/ 14 апреля 2020

просто используйте новую функцию PHP7 для проверки и действия в линии:

$DB2->image = $data['image']?? NULL;

не о том, правильно или нет, речь идет о хорошем и лучшем.

Теперь ?? означает, что если $ data ['image'] равно нулю (false), тогда просто установите NULL в $ DB2-> image.

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