php - 无法显示 Laravel 数据透视表中的所有记录

标签 php mysql laravel eloquent laravel-5.3

我有一个玩家/课时数据透视表,它保存从表单传递给它的所有值。然而,在我看来,它只显示了一些相关的记录。当我执行 $players->lessonhour->toArray 时,我似乎遇到了问题。当我执行 $lessonhours->players->toArray() 时,我只得到一些记录。我看不出我在关系设置中做错了什么。显然有些东西需要唤醒。有人可以帮忙吗?

修补匠:

Tinker view

MySql:

MySql view

玩家模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Collective\Html\Eloquent\FormAccessible;
use Carbon\Carbon;


class Players extends Model
{
    public $table = "players";

    protected $fillable = array('fname', 'lname', 'gender', 'birthdate');


    public function users()
    {
        return $this->belongsTo('App\User', 'users_id');
    }

    public function lessonhours()
    {
        return $this->belongsToMany('App\Lessonhours', 'lessonhour_player',    'lessonhours_id', 'players_id');
    }

    public function getFullName($id)
    {
        return ucfirst($this->fname ) . ' ' . ucfirst($this->lname);
    }

   protected $dates = ['birthdate'];

    public function setBirthdateAttribute($value)
    {
        $this->attributes['birthdate'] = Carbon::createFromFormat('m/d/Y',   $value);
    }
}


Lessonhours Model:

     <?php

namespace App;

use Illuminate\Database\Eloquent\Model;
 use Collective\Html\Eloquent\FormAccessible;
use Carbon\Carbon;

class Lessonhours extends Model
{
    protected $fillable = array('signup_date', 'players_id', 'packages_id');

    public $table = "lessonhours";

    public function players()
    {
        return $this->belongsToMany('App\Players', 'lessonhour_player',  'lessonhours_id', 'players_id');
    }

    public function packages()
    {
        return $this->belongsTo('App\Packages', 'packages_id');
     }

    public function hoursused()
    {
       return $this->hasMany('App\Hoursused', 'lessonhours_id');
    }

    protected $dates = ['signup_date'];

    public function setSignUpDateAttribute($value)
    {
        $this->attributes['signup_date'] = Carbon::createFromFormat('m/d/Y',     $value);
    }
}

这就是 View 所显示的内容。列表中的每个人都应该至少有 1 个包裹,有些有 2 个。

Player List

最佳答案

在玩家模型中交换lessonhours_idplayers_id:

public function lessonhours()
        {
            return $this->belongsToMany('App\Lessonhours', 'lessonhour_player', 'players_id', 'lessonhours_id');
        }

关于php - 无法显示 Laravel 数据透视表中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170357/

相关文章:

php - CSS 和 Chrome 的问题

mysql - 如何从 MySql 查询中查看锁列表?

php - 从 View laravel 中的数据透视表获取数据

mysql - 从数据库 Laravel 中删除重复条目

php - 不同的 pi 值?

php - 在同一页面中显示目标 url 的 javascript 或 jquery 弹出窗口

php - 从 MySQL 中删除旧记录的问题

mysql - 查找缺失的序列间隙mysql

PHP 显示列值的总和结果

php - Ratchet 与 Laravel