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.
> 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. –
Diese Antwort ist Ihnen zufrieden ..? –