3

在 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');
}

令人沮丧的是,这是与另一个布局和控制器一起使用的。我仔细检查了它们是否相同,但这个不起作用。任何建议将不胜感激。谢谢你。

4

2 回答 2

4

所以,假设这个控制器扩展了 BaseController(它必须让 $layout 工作),代码执行设置 $this->layoutView::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 不是应用程序正在寻找的布局?

你的路线是什么样的?

于 2013-09-08T02:19:25.190 回答
1

改变

class UsersController extends Controller

class UsersController extends BaseController

希望Confide的作者能解决这个问题:-)

于 2014-08-27T19:47:03.650 回答