在Layouts文件夹中,我有一个名为signup.blade.php的布局
在我的控制器中,我正在为它分配一个布局:
protected $layout = 'layouts.signup';
在一个名为“signup”的单独文件夹中,我有一个名为“signup1.blade.php”的文件。它包含您典型的刀片模板内容。这是一个名为“内容”的部分。在我有代码之前
@section('content')
最后有@stop。
我的控制器看起来像这样:
public function SignUp()
{
$this->layout->content = View::make('signup.signup1');
}
令人沮丧的是,这是与另一个布局和控制器一起使用。我已经仔细检查了它们是否相同,而且这个不起作用。任何建议将不胜感激。谢谢。
答案 0 :(得分:4)
因此,假设此控制器扩展了BaseController(它必须为$ layout工作),code execution sets $this->layout
到View::make($this->layout)
。
您的错误似乎表明$this->layout
未正确设置为View对象。
尝试运行此操作并查看$this->layout
是否为对象/类,如果是,则为什么类。
public function SignUp()
{
echo gettype($this->layout);
echo get_class($this->layout);
}
知道哪些$this->layout
未被更改为View
对象意味着setupLayout()方法未被调用,或者更可能不是View::make($this->layout)
的结果不是一个正确的观点(也许它由于某种原因而默默地失败)。
以上步骤可以帮助您了解那里发生的事情。也许layouts.signup
不是应用程序找到的布局?
您的路线是什么样的?
答案 1 :(得分:1)
更改
class UsersController extends Controller
到
class UsersController extends BaseController
希望Confide的作者修复此问题: - )