Bir üst nesneyle ilgili bazı bilgileri, Onar'ı kullanarak, ancak nasıl çalıştığını anlamaya çalışmakla zorlayarak erişmeye çalışıyorum. Bir biranın bir bira imalathanesine ait olduğunu ve bir bira fabrikasının çok sayıda bira olduğunu söyleyelim. Ben ikisini bağlamak için bir brewery_id kullanarak bira denetleyicisi, model ve görünüm var. Biraları listeleyen bir bira fabrikası sayfasıyla ilişkiye erişebilirim, böylece eşleştirmeyi biliyorum, ama ait oldukları bira ve biraların bulunduğu bir bira nasıl olur? Temel olarak ilişkiyi nasıl ele aldığımı tersine çeviriyorum.Laravel erişimde ters ilişki bilgileri
Brewery Modeli
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brewery extends Model
{
public function Beers(){
return $this->hasMany(Beer::class);
}
}
Beers Modeli
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Beer extends Model
{
protected $table = "Beers";
public function Breweries() {
return $this->belongsTo(Brewery::class);
}
}
Beers Kontrolörü
<?php
namespace App\Http\Controllers;
use App\Beer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class BeersController extends Controller
{
public function index() {
$beers = Beer::all();
return view('beers.index', compact('beers'));
}
public function show(Beer $beer) {
return $beer;
}
}
Beers Görünüm
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<h1>Beers</h1>
@foreach ($beers as $beer)
<div>
{{ $beer->name }}
{{ $beer->brewery->name }}
</div>
@endforeach
</div>
</div>
@stop
{{$ beer-> brewery-> name}} bunu {{$ beer-> Breweries-> name}} olarak değiştirin, çünkü ilişki yönteminizin adı Breweries'dir veya yönteminizi Bira'da bira olarak yeniden adlandırır modeli. Metotlar için küçük harf kullanın – umefarooq
@umefarooq Çalıştı ve alt kasa metotları üzerindeki kafalar için teşekkürler. Bunu bir cevap olarak gönderirseniz kabul edeceğim. – Packy