我是一个像这样编写的视图作曲家
view()->composer('masterbox.partials.pipeline', function($view) {
// Some vars and code
});
在我的一个观点中,我按照以下方式进行操作
@include('masterbox.partials.pipeline', ['my_var' => 1])
当我在我的浏览器上尝试它时,一切都很好,但是当我运行一个简单的测试时,一切都会爆炸......经过一些调试后我发现闭包没有被执行。
$this->visit('/connect/customer/subscribe')
->type($faker->firstName, 'first_name')
->type($faker->firstName, 'first_name')
->type($faker->lastName, 'last_name')
->type($faker->email, 'email')
->type($faker->phoneNumber, 'phone')
->type($password, 'password')
->type($password, 'password_confirmation')
->press("S'inscrire");
注意:它访问了一个页面,填写了表单并进行了订阅,然后它在@include
的页面上重定向,并返回一个很大的错误,其中一部分是
exception 'ErrorException' with message 'Undefined variable: my_var' in /Users/Loschcode/Google Drive/projects/my_project_lo/website/storage/framework/views/7e11f284c02bc38adc60b5f8a0545df65d7cf5ec.php:7
我担心这是一个问题,它是我几天前下载的新鲜Laravel 5.2。有什么猜测?调试这个的任何方法?感谢
答案 0 :(得分:0)
我最终尝试了什么。我的问题是我的服务提供商组织。
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
foreach (glob(app_path().'/Http/ViewComposers/*.php') as $filename){
require_once($filename);
}
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
如果您有类似的组织和问题,请用简单的require_once
替换require
,一切都会顺利。
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
foreach (glob(app_path().'/Http/ViewComposers/*.php') as $filename){
require($filename);
}
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}