2013-12-19 2 views
0

Я хочу захватить некоторые данные из базы данных и отобразить на странице макета, я в основном начал создавать небольшую CMS, чтобы попасть в Laravel, и все прошло отлично до сих пор, но теперь я на стене и не могу найти решение.Laravel Пытается получить свойство не объекта, но не уверен, почему

У меня есть файл лезвие макет так: http://paste.laravel.com/1fB1 ничего спе- циальностей, но вы увидите, я использовал $ PAGE-> meta_title и т.д. там и в моем контроллере я есть:

public function home() 
{ 
    $pages = Pages::all(); 
    return View::make('frontend/home')->with('pages',$pages); 
} 

Какие у меня есть страницы модель не делает ничего, на самом деле так:

class Pages extends Eloquent { 

    protected $table = 'pages'; 
    } 

так почему же он пытается получить свойство не-объект, и я не хочу использовать Еогеасп, потому что это будет во внешнем интерфейсе моего «тест ', так что foreach не будет соответствовать.

+0

Пожалуйста, включите полную messafe ошибок. – Reflic

+0

Страницы :: find (1) работает, но я хочу, чтобы все страницы загружались, так сказать, если я добавляю больше страниц через cms, я хочу, чтобы он показывал созданную страницу –

+0

Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ meta_title –

ответ

0

Вам нужно будет получить доступ к этим элементам в виде многомерного массива, если вы не хотите проходить через них.

$pages[0]['field_name_here']

или

$pages[1]['field_name_here']

+0

Или я могу просто использовать @section() для каждого из них? –

+0

В Blade '@ section' используется для разделения разделов в файле шаблона. Я использую это для своих меню. Это не подойдет вам. –

+0

Хотя это {{$ страницы [0] ['page_content']}} работает, он не показывает правильный контент для каждой другой страницы .... теперь я застрял !!!!! :( –

0

Его немного жесткой, чтобы ответить, не зная, как вы хотите, чтобы ваша CMS работать.

Например, у вас может быть маршрут {pagename} в файле routes.php, а затем у него есть контроллер страницы, где вы получите запрошенный маршрут из переданной переменной. Затем будет загружена страница, которую вы хотели, используя переменную

public function page($pagename) { 
    $page = Page::where('page_title', '=', $pagename)->first(); 

    View::make('frontend/page', array('page' => $page)); 
} 

Использование маршрута, как это, и контроллер, по вашему мнению, вы могли бы использовать {{ $page->content }}, чтобы получить содержимое запрашиваемой страницы из базы данных и отобразить его.

Надеюсь, это поможет.

Edit: Пример маршрута:

Route::get('{pagename}', '[email protected]'); 
Смежные вопросы