Лезвие Laravel "Вызов функции-члена has () для массива" - PullRequest
0 голосов
/ 07 ноября 2019

контроллер:

session(['errors' => ['email' => ['The email is invalid.']]]);
return view('auth.login');

blade-сервер:

@if ($errors->has('email'))
   <span class="help-block">
      <strong>{{ $errors->first('email') }}</strong>
   </span>
@endif

ошибка:

Вызов функции-члена имеет () для массива

Я пытался (объект) перед массивом, возвращать view () -> with () и многое другое !! Но я всегда получаю эту ошибку !!

Если возможно, я не хочу менять файл лезвия !! Есть ли способ отправить эти данные с контроллера в правильном направлении ??

1 Ответ

3 голосов
/ 07 ноября 2019

$ ошибок, возвращаемых Validator, является экземпляром Illuminate \ Support \ MessageBag, а не массивом;

Для репликации использования: В вашем контроллере вы можете:

use Illuminate\Support\MessageBag;

// Create a new MessageBag instance in your method.
$errors = new MessageBag;

// Add new messages to the message bag.
$errors->add('email', 'The email is invalid.');

return view('auth.login', ['errors' => $errors]);

Iпосчитайте, что вы должны использовать другое имя переменной, например $ customErrors, просто чтобы убедиться, что вы можете использовать view ('auth.login') -> withErrors ($ validator) в будущем, если потребуется. https://laravel.com/docs/5.8/validation#working-with-error-messages

...