Я столкнулся с этой проблемой на php 7.1, который поставляется с High Sierra (OS X 10.13.5), редактирование /etc/apache2/httpd.conf
со следующими изменениями помогло:
LoadModule php7_module libexec/apache2/libphp7.so
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
Вы правы, что вызов first()
в вашем запросе возвращает ноль, поэтому и возникает причина, по которой вы получаете эту ошибку.
Итак, что вы можете использовать для предотвращения вызова roles()
для нулевого объекта, это использовать метод firstOrFail()
, который выдаст ModelNotFoundException
, который вы можете поймать, используя блок try
catch
, и обработать его изящно. [ 119]
И, как я вижу, по вашему мнению, вы не отправляете значение электронного письма в своей форме, поэтому вы должны поместить это письмо в скрытый ввод:
<td>
<input type="hidden" name="email" value="{{$user->email}}" />
{{$user->email}}"
</td>
не имея, поэтому вы получить null
результат.
Вы должны проверить, установлены ли значения, которые вы намереваетесь передать. Это можно сделать с помощью примера isset @isset ('$ user-> hasRole (' User ')');