Laravel试图获得非对象的属性但不确定原因

时间:2013-12-19 19:54:28

标签: laravel-4

我想从数据库中获取一些数据并在布局页面上显示,我基本上已经开始构建一个小型CMS进入Laravel并且到目前为止一切都很好但现在我已经在墙上,并且可以找不到解决方案。

我有一个像这样的布局刀片文件:http://paste.laravel.com/1fB1没有majot,但你会看到我在那里和我的控制器中使用了$ 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,因为这将成为我的'测试'网站的前端,所以foreach不适合。

2 个答案:

答案 0 :(得分:0)

如果您不想循环访问这些项,则需要将这些项作为多维数组进行访问。

$pages[0]['field_name_here']

$pages[1]['field_name_here']

答案 1 :(得分:0)

在不知道您希望CMS如何工作的情况下,它有点难以回答。

例如,您可以在routes.php文件中有一个{pagename}的路由,然后有一个页面控制器,您可以从传入的变量中获取所请求的路由。这将加载您想要的页面使用变量

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

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

在视图中使用类似路径和控制器,您可以使用{{ $page->content }}从数据库中获取所请求页面的内容并显示它。

希望这有帮助。

编辑:示例路线:

Route::get('{pagename}', 'PageController@page');