php - 此集合实例上不存在属性 [stats]

标签 php mysql laravel

我是 Laravel 新手,我收到此错误

Property [stats] does not exist on this collection instance. (View: C:\xampp\htdocs\enginepoker2\resources\views\pages\players.blade.php)

这是在players.blade.php

@foreach ($player_stats->stats as $player_stat)

                        <tr class="gradeX">
                        <td><a href="">{{ $player_stat->username }}</a></td>
                        <td>{{ $player_stat->country }}</td>
                        <td>{{ $player_stat->rank }}</td>
                        <td class="center"><a href="#" class="name" data-name="winpot" data-pk="{{ $player_stat->ID }}" data-type="text" data-url="{{ route('updatePlayer') }}">{{ number_format($player_stat->winpot, 2, ',', '.') }}</a></td>
                        <td class="center"><a href="#" class="name" data-name="freeGames" data-pk="{{ $player_stat->ID }}" data-type="text" data-url="{{ route('updatePlayer') }}">{{ $player_stat->freeGames }}</a></td>
                            <td class="center"><a href="#" class="name" data-name="transferLimit" data-pk="{{ $player_stat->ID }}" data-type="text" data-url="{{ route('updatePlayer') }}">{{ number_format($player_stat->transferLimit, 2, ',', '.') }}</a></td>

                        </tr>

                        @endforeach

这是在 Controller 中

use App\players;
use Illuminate\Http\Request;

class playerController extends Controller
{

    public function index()
    {       
        $player_stats = players::where('bot', '=', '0')->orderBy('ID', 'DESC')->limit('500')->get();
        return view('pages.players', [ 'player_stats'=>$player_stats]);

    }
}

这是在玩家模型中

namespace App;

use Illuminate\Database\Eloquent\Model;

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

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

}

这是统计模型

namespace App;

use Illuminate\Database\Eloquent\Model;

class stats extends Model
{
    protected $player = 'stats';

    public function players()
    {
        return $this->hasMany(players::class);
    }    
}

最佳答案

首先,我认为您应该将模型的第一个命名更改为大写名称。我的意思是,将玩家类别更改为玩家类别,将统计类别更改为统计类别。

其次,尝试在 Laravel 中添加关系时使用命名空间。尝试改变。

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

public function stats()
{
    return $this->belongsTo('App\Stats');
}

同时更改

public function players()
{
   return $this->hasMany(players::class);
}

public function players()
{
    return $this->hasMany('App\Players');
}

关于php - 此集合实例上不存在属性 [stats],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287116/

相关文章:

php - 如何选择我的内容及其附带的所有标签?

php - Laravel 无法连接到数据库

mysql - 为什么 information_schema 表损坏了?

mysql - 当在 OS X Lion 上使用 Homebrew 软件安装 MySQL 时,如何安装 mysql2 gem?

command-line - 使用命令行创建 Controller 时缺少 Illuminate 的参数 2

php - 无法使用 laravel 安装打开流

SQL 语句上的 php 绑定(bind)参数不起作用

php - SilverStripe 每页请求的随机对象

php - 我如何提交位于 <div style ="display:none"> 内的输入?

php - 禁用购物车输入过滤的 Magento 核心修改的效果?