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


Layouts Throwing "Attempt to assign property of non-object" In Laravel 4

在布局文件夹中,我有一个名为 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 的作者可以解决这个问题:-)