【问题标题】:Trying to get property of non-object (View: C:\xampp\htdocs\enginepoker2\resources\views\pages\player_edit.blade.php)试图获取非对象的属性(查看:C:\xampp\htdocs\enginepoker2\resources\views\pages\player_edit.blade.php)
【发布时间】:2019-02-24 11:11:59
【问题描述】:

我是 laravel 的初学者,当我将统计表放入刀片时,我收到了这个警告

试图获取非对象的属性(查看: C:\xampp\htdocs\enginepoker2\resources\views\pages\player_edit.blade.php)

这是在模型播放器中

class Player extends Model
{
    protected $player = 'players'; 

    public function stats()
    {
        return $this->belongsTo(Stat::class, 'player');
    }
}

这是在统计模型中

class Stat extends Model
{
    protected $stat = 'stats';
}

这是在播放器控制器中

use App\Stat;
use App\Player;
use App\dealers;
use Illuminate\Http\Request;

class botsController extends Controller
{
public function edit(Player $player, Stat $stat, dealers $dealer)
    {
        return view('pages.player_edit', compact('player', 'stat', 'dealer'));
    }
}

这是在路线中

Route::get('/index/bots/id={player}/edit', 'botsController@edit')->name('editBot');

这是在 player_edit.blade 中,我收到非对象警告

<p>
   <span style="display: inline-block; min-width: 150px;">Rank</span>
   <span class="badge black">{{ $player->stats->rank }}</span>
</p>

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    通常在尝试将数组作为对象访问时会发生此“尝试获取非对象的属性”错误。 确保从表中检索到的所有数据都不是数组。

    【讨论】:

    • 你能告诉我这段代码中哪一个必须改变
    • 确保您没有使用 foreach 或 forelse 来循环遍历从数据库返回的结果。我有同样的问题,但已经解决了。
    • 如何从另一个 ForeignKey 获取数据,例如 $data->tbl9->FKfromtbl9->name ?
    • @JuMa 请通过 Laravel Eloquent 并理解这些概念。然后在模型中定义关系,您将能够访问相关的表列。在此处阅读更多信息laravel.com/docs/8.x/…
    【解决方案2】:

    检查数据库是否填充了一些值 在我的情况下尝试获取非对象的属性此错误是由于我的数据库是空的

    【讨论】:

      猜你喜欢
      • 2018-03-22
      • 2020-09-26
      • 2019-04-08
      • 1970-01-01
      • 2020-04-16
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      相关资源
      最近更新 更多