在布局文件夹中,我有一个名为 signup.blade 的布局.php
在我的控制器中,我为它分配了一个布局,如下所示:
protected $layout = 'layouts.signup';
在一个名为"signup"的单独文件夹中,我有一个名为"signup1.blade.php"的文件,它包含典型的刀片模板内容。这是一个称为"内容"的部分。在我有的代码之前
@section('content')
最后是@stop。
我的控制器如下所示:
public function SignUp()
{
$this->layout->content = View::make('signup.signup1');
}
令人沮丧的部分是,这是与另一种布局和控制器一起使用的。我已经仔细检查了它们是相同的,而这个不起作用。任何建议将不胜感激。谢谢。
因此,假设此控制器扩展了 BaseController(它必须使$layout工作),代码执行将$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
不是应用程序找到的布局?
你们的路线是什么样的?
更改
class UsersController extends Controller
自
class UsersController extends BaseController
希望 Confide 的作者可以解决这个问题:-)