Laravel - 如何使用'方法创建自定义'

时间:2015-02-02 01:23:24

标签: php class laravel laravel-4

问题出在标题中。 这就是我的尝试:

  • 我创建了MyView类扩展View
  • 已添加到应用别名列表
  • 我在这个类中创建了方法withMyData(),如下所示:

(这只是一个例子。它都以常规方式运作)

$my_data = 'some data';
return $this->with( 'my_data', $my_data );

然后我尝试了:

View::make('some-page')->withMyData();

我收到了这个错误:

ErrorException (E_UNKNOWN) 
Undefined offset: 0

TNX

1 个答案:

答案 0 :(得分:1)

您肯定选择了错误的方法将内容传递给每个视图。请改用view composers

View::composer('layout', function($view){
    $my_data = 'some data';
    $view->with('my_data', $my_data);
});

layout将是您的视图的名称。每次渲染时,作曲家都会运行。您还可以使用通配符*或视图名称数组来定位多个视图。

您可以将此代码放入app / filters.php或创建一个新的app / composers.php,并将其包含在app / start / global.php的末尾,其中包含:

require app_path().'/composers.php';

修改

您已经可以使用with*替代with('*'。所以:

$view->with('my_data', $my_data);

可以写成:

$view->withMyData($my_data);