Неопределенная переменная: на уровне 6 - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь отобразить данные на странице просмотра Laravel из базы данных.

, но мне это ничего не показывает

это код в .blade.php файле: -

   <tbody>
   @if(isset($Us))
       @foreach($Us as $row)
           <tr>
               <td>{{ $row->id ?? '-'}}</td>
               <td>{{ $row->name ?? '-' }}</td>
               <td>{{ $row->email ?? '-'}}</td>
           </tr>
       @endforeach
   @endif
   </tbody>
</table>

Код AdminController.php:

public function index()
{
    $Us = users::all()->toArray();
    return view('master')->with(['Us'=> $Us]);
}

и user.php:

class Us extends Model
{
    protected $fillable = ['id','name','email'];

    public function category(){
        $this->belongsTo(Category::class);
    }
}

Я хотел показать информацию базы данных на странице администратора

Спасибовы

Ответы [ 3 ]

1 голос
/ 03 ноября 2019

Попробуйте изменить название вашей модели на User вместо Us и users::all() на User::all()

0 голосов
/ 03 ноября 2019

Вы преобразовали Eloquent Collection в массив, который преобразует все содержащиеся в нем экземпляры модели в массивы. В вашем Blade-файле вы пытаетесь получить доступ к элементам массива как к объектам, когда они также являются массивами. Используйте синтаксис для доступа к массиву по индексу, $array['index'], вместо свойства объекта, $object->property:

<td>{{ $row['id'] ?? '-'}}</td>
<td>{{ $row['name'] ?? '-' }}</td>
<td>{{ $row['email'] ?? '-'}}</td>

Вероятно, было бы проще просто не преобразовывать коллекцию в массив с toArray.

Демонстрация вопроса:

$a = ['a' => 'A'];

dump($a->a ?? '-');
dump($a['a'] ?? '-');
0 голосов
/ 03 ноября 2019

chnage в вашем AdminController.php здесь вы можете написать имя модели, а не имя таблицы

public function index()
{
    $User = User::all()->toArray();
    return view('master')->with(['User'=> $User]);
}

, а также chnage в вашей модели, например, использовать Пользователь не мы

class User extends Model
{
    protected $fillable = ['id','name','email'];

    public function category(){
        $this->belongsTo(Category::class);
    }
}

, тогда вы можете написать свой файл blade.php как

   <tbody>
   @if(isset($User))
       @foreach($User as $row)
           <tr>
               <td>{{ $row->id ?? '-'}}</td>
               <td>{{ $row->name ?? '-' }}</td>
               <td>{{ $row->email ?? '-'}}</td>
           </tr>
       @endforeach
   @endif
   </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...