Попытка получить свойство необъекта (View: C: \ laragon \ www \ blog \ resources \ views \ admin \ users \ index.blade.php) - PullRequest
0 голосов
/ 05 ноября 2018

когда я собираюсь создать нового пользователя, я получаю этот тип ошибки. И ошибка над изображением ссылки. Если я изменяю маршрут изображения, например $user->profile['avatar']), он работает, но на странице просмотра он не отображает изображение.

просмотр страницы:

<tbody>
    @if($users->count() > 0)
      @foreach($users as $user)
      <tr>
        <td>
          <img src="{{asset($user->profile->avatar)}}" width="60px" height="60px" style="border-radius: 50%;">
        </td>
        <td>
          {{ $user->name }}
        </td>
        <td>

          @if($user->admin)

          <a href="{{route('user.not.admin',['id' => $user->id])}}" class="btn btn-sm btn-outline-danger">Remove permission</a>

          @else

          <a href="{{route('user.admin',['id' => $user->id])}}" class="btn btn-sm btn-outline-primary">Make admin</a>

          @endif

        </td>
        <td>
          delete
        </td>
      </tr>
    @endforeach
    @else
        <tr>
           <th colspan="5" class="text-center">No users available!</th>
        </tr>
    @endif

  </tbody>
</table>

Функция контроллера:

public function store(Request $request)
    {
        $this->validate($request, [
            'name' => 'required',
            'email' => 'required|email'
        ]);

        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt('password')
        ]);

        $profile = Profile::create([
            'user_id' => $user->id,
            'avatar' => 'uploads/avatars/1.png'
        ]);

        Session::flash('success', 'User created successfully!');

        return redirect()->route('users');
    }

Пожалуйста, помогите мне решить эту проблему. Если вам нужна дополнительная информация о коде, пожалуйста, дайте мне знать.

Ответы [ 4 ]

0 голосов
/ 29 декабря 2018

Звучит так, как будто ваш объект не существует ИЛИ что это массив ... Просто добавьте @ перед вашим $ user

 {{asset(@$user->profile->avatar)}}
0 голосов
/ 06 ноября 2018

Ваш запрос возвращает массив или объект ? Если вы сбросите его, вы можете обнаружить, что это массив, и все, что вам нужно, - это доступ к массиву ([]) вместо доступа к объекту (->).

0 голосов
/ 06 ноября 2018

Вы можете попробовать это вместо

$user->profile($id)['avatar'];

с учетом того, что для функции вашего профиля введено значение $id и функция возвращает информацию профиля пользователя, которую вы выбираете

0 голосов
/ 05 ноября 2018

Метод store кажется хорошим, проблема может быть в методе index, который возвращает ваше представление со списком пользователей, но не в отношении profile, вы можете попробовать вызвать $user->profile()->avatar в вашем вместо этого индексное представление $user->profile->avatar. Таким образом, вы запрашиваете отношения во время доступа к ним.

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