【问题标题】:Laravel4: Call to a member function on a non-objectLaravel4:调用非对象上的成员函数
【发布时间】:2013-10-19 10:07:49
【问题描述】:

下面的代码会报错

Call to a member function `links()` on a non-object

routes.php:

Route::get('videos', function(){
    $data = DB::table('video_data_r')->paginate(5);
    return View::make('video',$data);
});

对应video查看:

<?php foreach($data as $item): ?>
<div class="video_entry">
    <a href="<?php echo $item -> url; ?>" target="_blank"><img src="<?php echo $item -> thumb; ?>" /></a>
    <a href="<?php echo $item -> url; ?>" target="_blank"><?php echo $item -> title; ?>"</a>
</div>
<?php endforeach; ?>
<?php echo $data->links();?>

你能给我一个关于什么看起来像一个微不足道的错误的好提示吗?

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    更简洁的方法是使用 PHP compact 函数

     return View::make('video',compact('data'));
    

    【讨论】:

    • Compact 是一个标准的 PHP 函数 (php.net/compact),不是 Laravel 定义的。
    【解决方案2】:

    in the docs 所述,View::make 的第二个参数应该是一个关联数据数组,在视图中作为局部范围变量公开。

    所以$data = array('foo' =&gt; 'Ron', 'bar' =&gt; 'John); 会将$foo$bar 暴露给视图。

    您将paginate 的结果直接传递给视图,因此它的键将被暴露。

    您应该改为传递array('data' =&gt; $data)

    【讨论】:

    • 已保存。谢谢大家!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2010-09-26
    • 2012-04-20
    相关资源
    最近更新 更多