Я изучаю Laravel 4, пока все хорошо. Но для какой-то странной причины @foreach клика, похоже, не работает для простого запроса. Мой код:
Маршрут:
Route::get('/users', function(){ $users = User::all(); return View::make('users/index')->with('users',$users); });
Теперь в index.blade.php мой код:
@foreach ($users as $user) <p>User: {{ $user->username }}</p> @endforeach
Странно то, что когда я сбрасываю объект в представлении, он работает:
{{ dd($users->toArray())}}
Данные БД отображаются как массив.
Я не совсем уверен, что я делаю неправильно здесь, это довольно много кода из учебника для начинающих.
Вы должны использовать template/layout
(но вы не использовали его в соответствии с вашим представлением в Github ), а дочерние представления должны его расширять, например, ваше представление index.blade.php
должно выглядеть примерно так:
// index.blade.php @extends('layouts.master') @section('content') @foreach ($users as $user) <p>User: {{ $user->username }}</p> @endforeach @stop
Теперь убедитесь, что в папке app/views/layouts
есть макет master.blade.php
и он содержит что-то вроде этого:
// master.blade.php <!doctype html> <html class="no-js" lang=""> <head> <style></style> </head> <body> <div class='content'> @yield('content') {{-- This will show the rendered view data --}} </div> </body> </html>
Также dd($users->toArray())
работает, потому что он выгружает $user->toArray()
с помощью var_dump
и выходит из скрипта с использованием функции die
, dd
означает « dump and die
.