Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从另一个模型的背面加载模型?_Php_Laravel - Fatal编程技术网

Php 如何从另一个模型的背面加载模型?

Php 如何从另一个模型的背面加载模型?,php,laravel,Php,Laravel,希望这能为我的问题增加一些背景。我有三种型号 我的构建模型: public function buildComment(){ return $this->hasMany('App\buildComment'); } public function buildQuestion(){ return $this->belongsTo('App\buildQuestion'); } 我的问题模型: public function build(){ retur

希望这能为我的问题增加一些背景。我有三种型号

我的构建模型:

public function buildComment(){
    return $this->hasMany('App\buildComment');
}
public function buildQuestion(){
    return $this->belongsTo('App\buildQuestion');
}
我的问题模型:

public function build(){
        return $this->hasMany('App\Build');
    }
buildComments模型:

public function build(){
    return $this->belongsTo('App\Build');
}
这是我的控制器:

public function viewQuestion(buildQuestion $buildQuestion){
    $builds = Build::with('buildComment')->get();

    return view('pages.questionView',compact('buildQuestion', 'builds'));
}
以下是我的看法:

@foreach($buildQuestion->build as $build)
       <ul class="list-group">
           <li class="list-group-item clearfix active">Build suggestion by: {{$build->user->name}}</li>
            <li class="list-group-item clearfix">Processor: <a href="/parts/cpu/{{$build->processor->id}}">{{$build->processor->name}}</a></li>
            <li class="list-group-item clearfix">Graphics Card: <a href="/parts/gpu/{{$build->videoCard->id}}">{{$build->videoCard->name}}</a></li>
            <li class="list-group-item clearfix">RAM: <a href="/parts/memory/{{$build->memory->id}}">{{$build->memory->name}}</a></li>
            <li class="list-group-item clearfix">Motherboard: <a href="/parts/motherboard/{{$build->motherboard->id}}">{{$build->motherboard->name}}</a></li>
            <li class="list-group-item clearfix">Power Supply: <a href="/parts/power-supply/{{$build->powerSupply->id}}">{{$build->powerSupply->name}}</a></li>
            <li class="list-group-item clearfix">Storage: <a href="/parts/storage/{{$build->storage->id}}">{{$build->storage->name}}</a></li>
            <li class="list-group-item clearfix">Optical Drive: <a href="/parts/optical-drive/{{$build->opticalDrive->id}}">{{$build->opticalDrive->name}}</a></li>
            <li class="list-group-item clearfix"><strong>Build Total Price: £{{$build->processor->price + $build->videoCard->price + $build->memory->price + $build->motherboard->price + $build->powerSupply->price + $build->storage->price + $build->opticalDrive->price}}</strong></li>
        </ul>
        @foreach($build->buildComment as $comment)
        {{$comment->body}}
        @endforeach
        <form action="/build-comment/post/{{$build->id}}" method="POST">
            <div class="form-group">
                <label for="body">Comment </label>
                <textarea class="form-control"  name="body"></textarea>
            </div>
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
        @endforeach
@foreach($buildQuestion->buildas$build)
  • 构建建议人:{{{$Build->user->name}
  • 处理器: 图形卡: RAM: 主板: 电源: 存储: 光盘驱动器:
  • 构建总价:{{$Build->processor->Price+$Build->videoCard->Price+$Build->memory->Price+$Build->主板->Price+$Build->powerSupply->Price+$Build->storage->Price+$Build->opticalDrive->Price}
@foreach($build->buildComment作为$comment) {{$comment->body} @endforeach 评论 提交 @endforeach
我正在尝试获取属于生成的注释

buildQuestion有很多构建,构建有很多注释


如何表示这一点并检索构建的注释?

您可以通过嵌套加载在一个查询中获得所有注释

//one buildquestion with all the builds & comments
$buildQuestion = BuildQuestion::with('build.buildComment')->find(1); 

return view('pages.questionView',compact('buildQuestion'));
在你看来,筑巢是你的梦想

@foreach($buildQuestion->build as $build)
    //display stuff

    @foreach($build->buildComment as $comment)
         {{ $comment->body}}
    @endforeach
@endforeach
@foreach($buildQuestion->buildas$build)
  • 构建建议人:{{{$Build->user->name}
  • 处理器: 图形卡: RAM: 主板: 电源: 存储: 光盘驱动器:
  • 构建总价:{{$Build->processor->Price+$Build->videoCard->Price+$Build->memory->Price+$Build->主板->Price+$Build->powerSupply->Price+$Build->storage->Price+$Build->opticalDrive->Price}
@foreach($build->buildComment作为$comment) {{$comment->body} @endforeach 评论 提交 @endforeach

我在@EddyTheDove建议进行此更改后嵌套了另一个foreach,它成功了。

我想你想要的是
$buildQuestion->load(['builds','builds.comments')谢谢,这看起来很有希望!但是我有单独的页面,每个页面都有问题。每个构建问题都会显示与其相关的构建,然后在构建下方显示注释。您的回答会导致所有注释显示在构建下方,无论是否与构建相关。我需要为相关版本显示注释。我认为这与find()有关。然后尝试前面的查询,但保留double foreach。你必须循环所有的构建,循环所有的评论。很好,好人!如果你想看,我会更新的。
@foreach($buildQuestion->build as $build)
   <ul class="list-group">
       <li class="list-group-item clearfix active">Build suggestion by: {{$build->user->name}}</li>
        <li class="list-group-item clearfix">Processor: <a href="/parts/cpu/{{$build->processor->id}}">{{$build->processor->name}}</a></li>
        <li class="list-group-item clearfix">Graphics Card: <a href="/parts/gpu/{{$build->videoCard->id}}">{{$build->videoCard->name}}</a></li>
        <li class="list-group-item clearfix">RAM: <a href="/parts/memory/{{$build->memory->id}}">{{$build->memory->name}}</a></li>
        <li class="list-group-item clearfix">Motherboard: <a href="/parts/motherboard/{{$build->motherboard->id}}">{{$build->motherboard->name}}</a></li>
        <li class="list-group-item clearfix">Power Supply: <a href="/parts/power-supply/{{$build->powerSupply->id}}">{{$build->powerSupply->name}}</a></li>
        <li class="list-group-item clearfix">Storage: <a href="/parts/storage/{{$build->storage->id}}">{{$build->storage->name}}</a></li>
        <li class="list-group-item clearfix">Optical Drive: <a href="/parts/optical-drive/{{$build->opticalDrive->id}}">{{$build->opticalDrive->name}}</a></li>
        <li class="list-group-item clearfix"><strong>Build Total Price: £{{$build->processor->price + $build->videoCard->price + $build->memory->price + $build->motherboard->price + $build->powerSupply->price + $build->storage->price + $build->opticalDrive->price}}</strong></li>
    </ul>
    @foreach($build->buildComment as $comment)
    {{$comment->body}}
    @endforeach
    <form action="/build-comment/post/{{$build->id}}" method="POST">
        <div class="form-group">
            <label for="body">Comment </label>
            <textarea class="form-control"  name="body"></textarea>
        </div>
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
    @endforeach