首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel访问逆关系信息

Laravel访问逆关系信息
EN

Stack Overflow用户
提问于 2016-04-12 04:22:52
回答 2查看 124关注 0票数 0

我试图使用Elequent访问父对象的一些信息,但是很难弄清楚它是如何工作的。假设一瓶啤酒属于啤酒厂,而啤酒厂有很多啤酒。我有啤酒控制器,模型和视图使用一个brewery_id连接这两个。我可以通过一个列出啤酒的啤酒厂页面来访问这个关系,这样我就知道它们是对的,但是我如何在一个啤酒页面中包含所有的啤酒和它们所属的酿酒厂?基本上是颠倒了我如何得到这段关系。

啤酒厂模型

代码语言:javascript
复制
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Brewery extends Model
{

    public function Beers(){

        return $this->hasMany(Beer::class);

    }
}

啤酒模型

代码语言:javascript
复制
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Beer extends Model
{

    protected $table = "Beers";

    public function Breweries() {

        return $this->belongsTo(Brewery::class);

    }
}

啤酒控制器

代码语言:javascript
复制
<?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;

    }

}

啤酒视图

代码语言:javascript
复制
@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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-12 19:39:37

代码语言:javascript
复制
{{ $beer->brewery->name }} change it to {{ $beer->Breweries->name }} 

因为您的关系方法名是Breweries,或者在Beer模型中将您的方法重命名为啤酒厂。用小写字母表示方法

票数 0
EN

Stack Overflow用户

发布于 2016-04-12 06:53:37

我想这会解决你的问题

控制器

代码语言:javascript
复制
class BeersController extends Controller
    {

    public function index() {

        $beers = Beer::with('Breweries')->get();

        return view('beers.index', compact('beers'));
    }

视图:

代码语言:javascript
复制
@section('content')

    <div class="container">
        <div class="row">
            <h1>Beers</h1>

            @foreach ($beers as $beer)

                <div>
                    {{ $beer->name }}
                    {{ $beer->Breweries->name }}
                </div>

            @endforeach

        </div>
    </div>

@stop
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36563584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档