Я пытаюсь создать страницу администратора, где владелец магазина может проверять информацию от пользователей, которые зарегистрировались на сайте, но всегда получаю ошибку Undefined property: stdClass::$name.
Вот функция контроллера:
public function listar(){
$users = DB::table('users')->select('name')->orderBy('updated_at', 'desc')->get();
$users = DB::table('users')->select('email')->orderBy('updated_at', 'desc')->get();
$users = DB::table('users')->select('phone')->orderBy('updated_at', 'desc')->get();
}
Вот часть формы:
@foreach ($users as $u)
<tr>
<td>{{ $u->name }}</td>
<td>{{ $u->email }}</td>
<td>{{ $u->phone}}</td>
</tr>
@endforeach
Я просто хочу, чтобы он мог показывать эту информацию из базы данных.
Вы можете отредактировать свой вопрос, чтобы добавить материал, если вы его забыли. Внизу под тегами есть ссылка на редактирование. :-)






На самом деле вы запускаете запрос три раза, каждый раз перезаписывая переменную $users. В итоге вы получите последний, и у него нет свойства name, потому что вы выбрали только phone. Вы должны запустить его только один раз и указать все столбцы, которые вы хотите в select().
public function listar(){
$users = DB::table('users')->select('name', 'email', 'phone')
->orderBy('updated_at', 'desc')->get();
}
Могу ли я получить информацию из двух разных таблиц и поместить ее в одну и ту же переменную, например, $users?
Ты сможешь. Есть разные способы сделать это в зависимости от того, что вы с ним делаете. Соединение может быть уместным, но на самом деле это зависит от того, что представляет собой другая таблица, как она связана с первой таблицей и как вам нужно ее использовать.
public function listar(){
$users = //Your user model class ::all();
return $users;
}
Тогда попробуйте просмотреть
@foreach ($users as $u)
<tr>
<td>{{ $u->name }}</td>
<td>{{ $u->email }}</td>
<td>{{ $u->phone}}</td>
</tr>
@endforeach
Я забыл включить компактную часть, но сделал это - return view('admin.usuarios.index', compact('listar', 'users')); }