1
私はちょうどlaravelでプロジェクトを開始しています。これは私にとって新しい環境です。私はPHPやモデル関係に精通しています。しかし、ララベルの構造は少し複雑です。 問題は私が質問とコーステーブルを持っているので、1つの質問には1つ以上のコースがあるので、コースIDと質問IDを保持するテーブルをもう1つ作成しました。laravelにhasmany関係で結果を見つける
質問モデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Question extends Model{
protected $primaryKey = "id";
public function courses(){
return $this->hasMany('App\Models\CourseQuestion');
}
}
コースモデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Course extends Model {
protected $primaryKey = "id";
public function questions(){
return $this->hasOne('App\Models\CourseQuestion');
}
}
そして最後courseQuestionモデル
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class CourseQuestion extends Model {
protected $primaryKey = "id";
public function questions(){
return $this->hasOne('App\Models\Question');
}
public function courses(){
return $this->hasMany('App\Models\Course');
}
}
と私は結果を取得し、私のコントローラ -
class IndexController extends BaseController {
public function index(){
$user = Question::with('user','courses','branches')->find(100);
echo "<pre>";
print_r($user); die;
}
}
コースはIDと3番目のテーブルに格納されている質問だけを返しますが、私はコース名をそれぞれのIDにします。助けてください ありがとうございます。
>賢明な変更と同様に、すべての機能... > hasManyの/ hasOneの/ belongsToの > 1 =>モデルパス > 2 => local_foreignkey名 > 3 =>マスターテーブル の主キー>とfinaly使用 >選択せずにデータ全体を取得する必要がある場合は、いくつかの追加フィールドを選択します。 –
この回答はあなたに満足しています..? –