布局在Laravel 4中投掷“尝试分配非对象的属性”

时间:2013-09-07 22:46:10

标签: php layout laravel blade

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

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

2 个答案:

答案 0 :(得分:4)

因此,假设此控制器扩展了BaseController(它必须为$ layout工作),code execution sets $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不是应用程序找到的布局?

您的路线是什么样的?

答案 1 :(得分:1)

更改

class UsersController extends Controller

class UsersController extends BaseController

希望Confide的作者修复此问题: - )