【问题标题】:Trying to get property of non-object Laravel试图获取非对象 Laravel 的属性
【发布时间】:2014-09-18 22:14:16
【问题描述】:

我有一条属于授权组的路线:

Route::get('clan/leave',[
        'as' => 'clan-leave',
        'uses' => 'ClanController@getLeave'
    ]);

这会导致我的 ClanController 使用 getLeave() 函数:

public function getLeave(){
    return "Test";
}

然后我有一个基本链接,它将用户带到 /clan/leave,它应该启动控制器功能并显示“测试”。这没有发生,我收到此错误:

Trying to get property of non-object: Laravel\app\views\clan\display.blade.php

我不明白为什么这个显示文件会涉及。我确实有另一条路线/clan 可以到达这里。

我没看到什么? 非常感谢。

【问题讨论】:

  • 那么 display.blade.php 中有什么?您能否提供与您的问题相关的文件内容?
  • 我目前不在我的电脑前。不过,我稍后可以获取内容。我相信这不是该文件内容的问题,因为它甚至不应该使用该文件。路由不应该把它带到那里。该文件使用对象来显示信息,因此我可以看到为什么在没有提供对象的情况下尝试转到该文件时出现错误。无论如何,它不应该进入那个文件。对吗?
  • 如何生成 URL。您的 as 使用 - not 。这是故意的吗?
  • 路线名称为clan-leave。 url 是使用 URL::route('clan-leave') 生成的。抱歉,你说的不使用是什么意思?
  • 我只是指出您在路线名称中使用的是破折号而不是圆点,以及这是否是故意的。我真的不明白为什么这不起作用,我找不到您提供的代码和示例有任何问题。您说它不应该使用 display.blade.php 文件,但该文件在异常消息中被引用。您需要在调试消息的帮助下进行回溯以找出它的来源。

标签: php laravel laravel-routing


【解决方案1】:

我发现了我的问题。

我有这条路线:

Route::get('clan/{id}',[
        'as' => 'clan',
        'uses' => 'ClanController@getOther'
    ]);

这条路线被触发了,而不是预期的路线。我只能假设这是因为它正在选择部落/离开(作为变量而不是路线离开)而被解雇。我已通过将此路线移至路线底部来解决此问题

【讨论】:

  • 路由在 Laravel 中从上到下完成,第一个匹配是第一个选择的。最好的办法是将通配符/参数放在最后,或者放在最后。
猜你喜欢
  • 2015-09-22
  • 2017-03-20
  • 2014-03-25
  • 2015-01-25
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多