Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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 两个表Laravel中不同行之间的关系_Php_Laravel_Oop_Eloquent - Fatal编程技术网

Php 两个表Laravel中不同行之间的关系

Php 两个表Laravel中不同行之间的关系,php,laravel,oop,eloquent,Php,Laravel,Oop,Eloquent,我想在两个表(类别和子类别)之间建立连接,以便在导航栏中显示它们。父项id对应于类别表id Table Categories ID Title 1. Beds 2. Mattresses Table Subcategories ID Title Parent_id 1. Superimposed 1 2. Single 1 3. Arches 2 4. Foam 2 Subcateg

我想在两个表(类别和子类别)之间建立连接,以便在导航栏中显示它们。父项id对应于类别表id

Table Categories

ID  Title
1.  Beds
2.  Mattresses

Table Subcategories

ID Title           Parent_id
1. Superimposed      1
2. Single            1
3. Arches            2
4. Foam              2
Subcategory.php模型

Class Subcategory extends Model
{
    public function category()
    {
        return $this->belongsTo('App\Category');
    }
}
Category.php模型

class Category extends Model
{
    public function subcategory()
    {
        return $this->hasMany('App\Subcategory');
    }
}
PostsController.php控制器

class PostsController extends Controller
{
    public function index() 
    {
        $subcategory = Subcategory::with('category')->get();
        return view('posts.index', compact('subcategory'));

    }
}
Navbar.blade.php。链接到posts.blade.php

 <div class="navbar-collapse collapse" id="navigation">
            <ul class="nav navbar-nav navbar-left">
                <li class="active"><a href="">Acasa</a></li>
                  **@foreach($category as $subcat)**
                        <li class="dropdown yamm-fw">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="200">**{{$subcat->category->category}}**<b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <li>
                                    <div class="yamm-content">
                                        <div class="row">
                                            <div class="col-sm-3">
                                                <h5>Categorii</h5>
                                                <ul>
                                                  <li>
                                                    <a href="category.html">{**{Here i need to display the subcategories}**}</a>
                                                  </li>  
                                                    @endforeach
                                                </ul>
                                            </div><!-- /.yamm-content -->
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </li>

                @endforeach
@foreach($categories as $category)
    <li class="dropdown yamm-fw">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="200">
            **{{$category->title (or whatever the name is)}}**<b class="caret"></b>
         </a>
         <ul class="dropdown-menu">
             <li>
                 <div class="yamm-content">
                     <div class="row">
                         <div class="col-sm-3">
                             <h5>Categorii</h5>
                                 <ul>
                                     @foreach($category->subcategory as $sub)
                                         <li>
                                             <a href="category.html">
                                                 {{ $sub->title (or whatever the name is)}}
                                             </a>
                                          </li>  
                                      @endforeach
                                 </ul>
                            <!-- Closing tags here -->
@endforeach

在这一刻,它显示床垫。我如何才能在第一位显示类别和子类别之后?对不起,我说的是英语。

发生这种情况是因为您正在获取每个子类别的类别名称

您可以在控制器中执行相反的操作,而不是使用类别获取子类别,而是使用子类别获取类别

而不是:Subcategory::with'category'->get

Do:Category::with'subcategory'->get

然后在你看来,做一个普通的foreach:

PostsController.php

<?php
class PostsController extends Controller
{
    public function index() 
    {
        $categories = Category::with('subcategory')->get();
        return view('posts.index', compact('categories'));
    }
}
Index.blade.php

 <div class="navbar-collapse collapse" id="navigation">
            <ul class="nav navbar-nav navbar-left">
                <li class="active"><a href="">Acasa</a></li>
                  **@foreach($category as $subcat)**
                        <li class="dropdown yamm-fw">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="200">**{{$subcat->category->category}}**<b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <li>
                                    <div class="yamm-content">
                                        <div class="row">
                                            <div class="col-sm-3">
                                                <h5>Categorii</h5>
                                                <ul>
                                                  <li>
                                                    <a href="category.html">{**{Here i need to display the subcategories}**}</a>
                                                  </li>  
                                                    @endforeach
                                                </ul>
                                            </div><!-- /.yamm-content -->
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </li>

                @endforeach
@foreach($categories as $category)
    <li class="dropdown yamm-fw">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="200">
            **{{$category->title (or whatever the name is)}}**<b class="caret"></b>
         </a>
         <ul class="dropdown-menu">
             <li>
                 <div class="yamm-content">
                     <div class="row">
                         <div class="col-sm-3">
                             <h5>Categorii</h5>
                                 <ul>
                                     @foreach($category->subcategory as $sub)
                                         <li>
                                             <a href="category.html">
                                                 {{ $sub->title (or whatever the name is)}}
                                             </a>
                                          </li>  
                                      @endforeach
                                 </ul>
                            <!-- Closing tags here -->
@endforeach

为什么$subcategory=subcategory::with'category'->get;为什么不使用Category::with'subcategory'->获取,这样您就可以正确地循环它谢谢陛下的帮助。为了解决这个问题,我已经努力了好几个小时。10XThx。