0
私は3つのテーブルを持っています。 ID、電子メール、パスワード、ユーザー名などLaravel関係は
teams
Image of my teams table structure
members
Image of my members table structure
私のメンバー表は、ユーザーがチームの一部であるのを追跡するために使用されます。
私が作成しようとしているのは、訪れたときに、ユーザーが現在参加しているすべてのチームを表示するルートです。
これは私が試したものです:
Team.php
<?php
namespace EG;
use Illuminate\Database\Eloquent\Model;
class Team extends Model
{
protected $table = 'teams';
public function members()
{
return $this->hasMany('Member');
}
}
Member.php
<?php
namespace EG;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
protected $table = 'members';
public function teams()
{
return $this->belongsTo('Team');
}
}
routes.php
Route::get('/test', function() {
$member = EG\Member::where('user_id', '=', Auth::user()->id)->get();
$teams = $member->teams;
foreach($teams as $team) {
echo $team->team_name."<br>";
}
});
私は/テストを訪れたとき、私はこのエラーを取得しています:
あなたたちはより良い私が作成しようとしているかを理解できるように、3210ただ、ここで私は手続き的にそれを行うだろうかです:
$sql = “SELECT team_id FROM members WHERE user_id = ‘“.Auth::user()->id.”';”;
$result = mysqli_querry($conn, $sql);
while ($row = mysqli_fetch_assoc($result))
{
$sql = “SELECT * FROM teams WHERE id = ‘“.$row[’team_id'].”';”;
$result = mysqli_query($conn, $sql);
while ($team = mysqli_fetch_assoc($result))
{
echo $team[’team_name’].”<br>”;
}
}
おかげで、働いているようだ:
あなたは、単一のモデルが必要な場合
は->first()
メソッドを使用します。私は今、クラス 'チーム'が存在しないというエラーが表示されています。私はそれがMember.phpのこの行に問題があると仮定しています:return $ this-> belongsTo( 'Team'); – iJamesPHP2私はこれを修正しました。私は今、このエラーが発生しています:最初のエラーを修正するforeach() – iJamesPHP2
の引数が無効です: 'return $ this-> belongsTo( 'App \ Team');'。これを試して、最新のエラーを修正してください: '$ teams = $ member-> teams() - > get()' –