2016-05-25 8 views
0

Ich erstellen 2 Tabellen Kurse und Studenten und Einfügen von Daten, wenn die Rückkehr Daten aus diesen 2 Tabelle (Fremdschlüssel Beziehung in diesen Tabellen) gibt mir alle Daten aber Name Spalte ist in Studenten und Kursen Tabellen, wenn i Anzeigename zeigt es nur natürlich Name, aber ich möchte sowohl Schüler und KursnameJoins in Laravel

hier ist mein Code für Controller

public function index() 
    { 
     $data = DB::table('students') 
      ->join('courses', function($join) 
      { 
       $join->on('students.course_id', '=', 'courses.course_id') 
        ->where('courses.course_id', '=', 101); 
      }) 
      ->get(); 
//  dd($data); 
     return view('student.home', compact('data')); 
    } 

Anzeigecode

@foreach($data as $d) 
    {{ $d->roll_no }} 
    {{ $d->name }} 
    <br> 
    @endforeach 

Kurse tabl e Migration

public function up() 
    { 
     Schema::create('courses', function (Blueprint $table) { 
//   $table->increments('id'); 
      $table->string('course_id'); 
      $table->string('name'); 
      $table->string('credit_hour'); 
      $table->timestamps(); 

      $table->primary('course_id'); 
     }); 
    } 

Studenten Tisch Migration

public function up() 
    { 
     Schema::create('students', function (Blueprint $table) { 
//   $table->increments('id'); 
      $table->string('roll_no'); 
      $table->string('name'); 
      $table->string('email'); 
      $table->string('address'); 
      $table->string('course_id'); 

      $table->timestamps(); 

      $table->primary('roll_no'); 
      $table->foreign('course_id')->references('course_id')->on('courses')->onDelete('cascade'); 
     }); 
    } 

, wie ich beide Namen Kurs angezeigt und Studentennamen

+0

zu diesem Zeitpunkt zeigt es nur Kursname und alle anderen Daten aus beiden Tabellen mit Ausnahme der Studentenname –

+0

Es ist wahrscheinlich, weil Sie in beiden Tabellen 2 Spalten namens 'name' haben. Versuchen Sie, Spalten in 'student_name' und' course_name' umzubenennen. Das sollte es tun. – KuKeC

+0

eine andere Lösung .....? –

Antwort

1

Sie eine benutzerdefinierte Ihre Query Builder wählen hinzufügen und vorhandene Spalten umbenennen Spalten zu verhindern, dass in den Ergebnissen ausgeschlossen.

Beispiel:

DB::table('students') 

    ->select(['*', DB::raw('students.name as student_name')]) 

    ->join(.... 

Sie können diese Eigenschaft zugreifen wie:

@foreach ($data as $d) 

    {{ $d->student_name }} 

@endforeach 

Verwenden dd ($ d) in Ihrem foreach und sehen Sie, welche Attribute Sie jetzt zugreifen können.

+0

dieser eine arbeit für mich danke mann :) –