Я пытаюсь построить простую систему форумов.
У меня есть модель под названием Category.php, в которой я определяю таблицу и расширяю Eloquent.
У меня есть CategoryController.php, который является находчивым контроллером, в методе index () я делаю:
$categories = Category::all();
Что, как я полагаю, должно возвращать массив объектов. Это отлично сработало в другом моем проекте.
Однако, когда я пытаюсь выполнить это через foreach, ничего не отображается. Я попытался переименовать контроллер и модель в ForumController и Form соответственно, и это сразу сработало.
Любые идеи? Возможно, название категории было зарезервировано Laravel и отменяет мою желаемую функциональность?
CategoryController.php:
<?php
class CategoryController extends \BaseController {
protected $layout = 'master';
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
$categories = Category::all();
$this->layout->content = View::make('category.index', array('categories' => $categories));
}
Category.php (модель):
<?php
class Category extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'categories';
}
Category / index.blade.php (просмотр):
@section('content')
<ul>
@foreach ($categories as $category)
<li><a href="/category/{{ $category->slug }}">{{ $category->name }}</a></li>
@endforeach
</ul>
@stop
Моя база данных настроена правильно. Когда я запускаю $ category = Category :: find (1); он правильно возвращает категорию с идентификатором 1, которую я могу использовать как объект.
foreach
обработать коллекцию, потому что, если бы вы это сделали, вы бы обнаружили, что это работает. - person alexrussell   schedule 16.02.2014foreach
(а неdd
, который не совсем работает так же, как он может проверять частные и защищенные свойства объектов, а не волшебные), чтобы люди могли увидеть, есть ли проблема с вашим реальным кодомforeach
ing. - person alexrussell   schedule 16.02.2014Category
в качестве названия модели - скажем так, по крайней мере 25% приложений Laravel, вероятно, будут иметь модельCategory
, но, возможно, из-за вашего кода в более широком контексте. Хорошо, что вы отредактировали свое сообщение, но вы все еще не указываете точный код, который не работает вforeach
- нам было бы действительно полезно увидеть этот код, если там все еще есть что-то странное. Я знаю, что вы сказали, что замена его на другую модель работает нормально, но, тем не менее, почему бы просто не предоставить ее в любом случае? - person alexrussell   schedule 16.02.2014foreach ($categories)
, похоже, не получает даже одной итерации) или HTML-код печатается, но поля на каждом$category
не выводятся? Кроме того, у вас нигде нет кода типаView::share('categories', $someValue)
? Возможно, это могло быть причиной зарезервированного имени переменной. - person alexrussell   schedule 17.02.2014