【问题标题】:Looping through result of relational tables in laravel?循环遍历laravel中关系表的结果?
【发布时间】:2019-09-24 06:30:21
【问题描述】:

我确实对这段代码有问题 这是使用的模型

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Navigation extends Model
{
    protected $table = "navigation" ;
    protected $primaryKey = "navi_id";

    public function PrimaryNavigation()
    {
        return $this->hasMany(PrimaryNavigation::class);
    }
}

查询是这样进行的

        <?php

    namespace App\Http\Controllers;

    use App\Navigation;
    use App\PrimaryNavigation;
    use Illuminate\Http\Request;

    class NavigationController extends Controller
    {
        /**
         * Display a listing of the resource.
         *
         * @return \Illuminate\Http\Response
         */
        public function index()
        {
             $mainNavi = Navigation::with('PrimaryNavigation')->get() ;
             return view('dump')->with('data',$mainNavi);
        }
}
?>

每当我尝试打印来自此查询的结果时,它永远不会显示相关表的正确输出。 当我打印输出时,它显示正确的结果,但是当我尝试打印出相关的表数据时,它只显示 NULL 值

@foreach($data as $single)
 {{dd($single)}}</br>
@endforeach

此代码显示正确的输出

{"navi_id":8,"navi_name":"fouad","navi_route":"\/fouad","navi_sort":0,"navi_created_at":"2019-09-23 02:21:24.000000","navi_last_update":"2019-09-23 02:21:29.000000","primary_navigation":[{"primary_navi_id":5,"navigation_navi_id":8,"primary_navi_name":"tamer","primary_navi_route":"\/tamer","primary_navi_created_at":"2019-09-23 02:28:38.000000","primary_navi_last_update":"2019-09-23 02:28:40.000000","primary_navi_sort":0},{"primary_navi_id":13,"navigation_navi_id":8,"primary_navi_name":"momo","primary_navi_route":"\/momo","primary_navi_created_at":"2019-09-23 14:44:13.000000","primary_navi_last_update":"2019-09-23 14:44:15.000000","primary_navi_sort":0}]}
{"navi_id":9,"navi_name":"mohamed","navi_route":"\/mohamed","navi_sort":1,"navi_created_at":"2019-09-23 14:09:30.000000","navi_last_update":"2019-09-23 14:09:33.000000","primary_navigation":[{"primary_navi_id":6,"navigation_navi_id":9,"primary_navi_name":"soso","primary_navi_route":"\/SOSO","primary_navi_created_at":"2019-09-23 14:10:33.000000","primary_navi_last_update":"2019-09-23 14:10:36.000000","primary_navi_sort":0},{"primary_navi_id":14,"navigation_navi_id":9,"primary_navi_name":"yoyo","primary_navi_route":"\/yoyo","primary_navi_created_at":"2019-09-23 14:44:34.000000","primary_navi_last_update":"2019-09-23 14:44:37.000000","primary_navi_sort":0}]}
{"navi_id":10,"navi_name":"yasser","navi_route":"\/yasser","navi_sort":2,"navi_created_at":"2019-09-23 14:09:43.000000","navi_last_update":"2019-09-23 14:09:45.000000","primary_navigation":[{"primary_navi_id":7,"navigation_navi_id":10,"primary_navi_name":"mathy","primary_navi_route":"\/math","primary_navi_created_at":"2019-09-05 14:10:57.000000","primary_navi_last_update":"2019-10-09 14:10:59.000000","primary_navi_sort":0}]}
{"navi_id":11,"navi_name":"mahy","navi_route":"\/mahy","navi_sort":3,"navi_created_at":"2019-09-23 14:10:00.000000","navi_last_update":"2019-09-23 14:10:02.000000","primary_navigation":[{"primary_navi_id":8,"navigation_navi_id":11,"primary_navi_name":"toty","primary_navi_route":"\/toyt","primary_navi_created_at":"2019-09-23 14:11:20.000000","primary_navi_last_update":"2019-09-23 14:11:23.000000","primary_navi_sort":0},{"primary_navi_id":12,"navigation_navi_id":11,"primary_navi_name":"JAJA","primary_navi_route":"\/JAJ","primary_navi_created_at":"2019-09-23 14:43:54.000000","primary_navi_last_update":"2019-09-23 14:43:57.000000","primary_navi_sort":0}]}

但是当我试图只显示相关表时,它给出了 null

@foreach($data as $single)
 {{dd($single->primary_navigation)}}</br>
@endforeach

【问题讨论】:

    标签: php laravel laravel-5 eloquent


    【解决方案1】:

    你必须代替primary_navigation使用-&gt;PrimaryNavigation(在你的关系中定义)

    @foreach($data as $single)
     {{dd($single->PrimaryNavigation)}}</br>
    @endforeach
    

    或更改您的关系方法名称

    public function primary_navigations()
    {
        return $this->hasMany(PrimaryNavigation::class);
    }
    

    并使用

    @foreach($data as $single)
     {{dd($single->primary_navigations)}}</br>
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 2016-10-14
      • 2013-09-14
      • 2019-02-18
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      相关资源
      最近更新 更多