2016-03-25 1 views
1

Ich starte gerade ein Projekt in Laravel und das ist neue Umgebung für mich. Ich bin mit PHP vertraut und modelliere auch Beziehungen. Aber die Laravel-Struktur ist etwas komplex zum Starten. Also das Problem ist, ich habe eine Frage und Kurs-Tabelle, eine einzelne Frage kann mehr als einen Kurs haben, so dass ich eine weitere Tabelle erstellt, die Kurs-ID und Frage-ID halten.Finden Sie das Ergebnis mit Hasmany Beziehung in Laravel

Frage Modell

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 

class Question extends Model{ 

    protected $primaryKey = "id"; 

    public function courses(){ 
     return $this->hasMany('App\Models\CourseQuestion'); 
    } 
} 

Course Modell

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 

class Course extends Model { 
    protected $primaryKey = "id"; 

    public function questions(){ 
     return $this->hasOne('App\Models\CourseQuestion'); 
    } 
} 

Und last courseQuestion Modell

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'); 
    } 
} 

Und mein Controller, wo ich Ergebnis zu erzielen -

class IndexController extends BaseController { 

    public function index(){ 
     $user = Question::with('user','courses','branches')->find(100); 
     echo "<pre>"; 
     print_r($user); die; 
    } 
} 

So geben die Kurse natürlich nur ID und Fragen, die in der dritten Tabelle speichern, aber ich möchte den Kursnamen entsprechende ID. Bitte helfen Sie Danke.

Antwort

0
namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class Question extends Model 
{ 

    protected $primaryKey = "id"; 

    public function courses() 
    { 
     return $this->hasMany('App\Models\CourseQuestion', 'course_question_id', 'id') 
     ->select('id', 'name'); 
    } 
} 
+0

> Wie weise ändern alle Funktion ... > hasMany/hasOne/belongsto > 1 => Modelle Pfad > 2 => local_foreignkey name > 3 => PrimaryKey der Haupttabelle > und finaly Verwendung Wählen Sie, um einige zusätzliche spezifische Felder zu erhalten, wenn Sie benötigen > ohne wählen Sie können ganze Daten erhalten. –

+0

Diese Antwort ist Ihnen zufrieden ..? –