Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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 如何从控制器获取两个对象结果以在Laravel5中查看_Php_Mysql_Laravel - Fatal编程技术网

Php 如何从控制器获取两个对象结果以在Laravel5中查看

Php 如何从控制器获取两个对象结果以在Laravel5中查看,php,mysql,laravel,Php,Mysql,Laravel,这是我用来获取两个对象的控制器代码。在我使用的每个对象的末尾->get();显示未定义变量的错误。但是当我使用->first()时;它工作正常,但只显示第一条记录。但我需要整张唱片 public function ratingdata() { $pacra['pacra'] = DB::table('og_ratings AS p') ->select('p.client_id as Id','p.ppl_date as Ppl','p.notifica

这是我用来获取两个对象的控制器代码。在我使用的每个对象的末尾->get();显示未定义变量的错误。但是当我使用->first()时;它工作正常,但只显示第一条记录。但我需要整张唱片

public function ratingdata()
{
      $pacra['pacra'] = DB::table('og_ratings AS p')

           ->select('p.client_id as Id','p.ppl_date as Ppl','p.notification_date as Notification ',
            'p.dissemination_date as Dissemination', 'p.rating_type_id as ratingTypeId',
            'p.rating_scale_id',  'p.pacra_action as Action' , 'og_companies.name as Entity',
            'og_main_sectors.title as Industry', 'p.detail_report as DetailReport', 

            ) 
      ->get();




       $jcr['jcr'] = DB::table('og_ratings_jcr as t')

               ->select('t.client_id as id',
                't.jcr_dissemination_date as Dissemination', 
                't.rating_type_id as ratingTypeId',
                't.rating_scale_id',  
                't.jcr_action as Action' , 'og_companies.name as Entity',
                't.press_release_jcr as PressRelease',
                'og_actions.title as RatingAction',
                'og_outlooks.title as Outlook',
                'og_sterms.title as RatingST',
                'og_lterms.title as RatingLT',
                'og_segments.title',
                'og_rating_scales.title as RatingScale',
                'og_fund_types.title as fundtype',
                't.isActive as isActive' , 'og_main_sectors.title AS Industry' )
          ->get();

           return view('RatingsPacra', compact('pacra' , 'jcr'));
}

我发现您缺少了表之间的关系,以及@apokryfos提到的额外的

尝试以下方法:

public function ratingData()
{
    $pacra['pacra'] = \DB::connection()
        ->table('og_ratings')
        ->leftJoin('og_companies', 'og_companies.id', '=', 'og_ratings.og_companies_id')
        ->leftJoin('og_main_sectors', 'og_main_sectors.id', '=', 'og_ratings.og_main_sectors_id')
        ->select([
            'og_ratings.client_id as Id',
            'og_ratings.ppl_date as Ppl',
            'og_ratings.notification_date as Notification',
            'og_ratings.dissemination_date as Dissemination',
            'og_ratings.rating_type_id as ratingTypeId',
            'og_ratings.rating_scale_id',
            'og_ratings.pacra_action as Action',
            'og_companies.name as Entity',
            'og_main_sectors.title as Industry',
            'og_ratings.detail_report as DetailReport',
        ])
        ->get();

    $jcr['jcr'] = \DB::connection()
        ->table('og_ratings_jcr')
        ->leftJoin('og_actions', 'og_actions.id', '=', 'og_ratings_jcr.og_actions_id')
        ->leftJoin('og_outlooks', 'og_outlooks.id', '=', 'og_ratings_jcr.og_outlooks_id')
        ->leftJoin('og_sterms', 'og_sterms.id', '=', 'og_ratings_jcr.og_sterms_id')
        ->leftJoin('og_lterms', 'og_lterms.id', '=', 'og_ratings_jcr.og_lterms_id')
        ->leftJoin('og_segments', 'og_segments.id', '=', 'og_ratings_jcr.og_segments_id')
        ->leftJoin('og_rating_scales', 'og_rating_scales.id', '=', 'og_ratings_jcr.og_rating_scales_id')
        ->leftJoin('og_fund_types', 'og_fund_types.id', '=', 'og_ratings_jcr.og_fund_types_id')
        ->select([
            'og_ratings_jcr.client_id as id',
            'og_ratings_jcr.jcr_dissemination_date as Dissemination',
            'og_ratings_jcr.rating_type_id as ratingTypeId',
            'og_ratings_jcr.rating_scale_id',
            'og_ratings_jcr.jcr_action as Action', 'og_companies.name as Entity',
            'og_ratings_jcr.press_release_jcr as PressRelease',
            'og_actions.title as RatingAction',
            'og_outlooks.title as Outlook',
            'og_sterms.title as RatingST',
            'og_lterms.title as RatingLT',
            'og_segments.title',
            'og_rating_scales.title as RatingScale',
            'og_fund_types.title as fundtype',
            'og_ratings_jcr.isActive as isActive', 'og_main_sectors.title AS Industry',
        ])
        ->get();

    return view('RatingsPacra', compact('pacra', 'jcr'));
}
您应该在表之间更改外键

您仍然可以继续使用表别名,我只是不喜欢使用它们,因为它们有时在Laravel/Dbal中无法正常工作

我还将方法名称从
ratingdata
更新为
ratingdata
,以符合PSR-1标准:


您还可以返回
\DB:connection()->table(..
DB::table(…
,这只是一种自以为是的方式。

详细报告之后还有一个额外的
这是一个打字错误吗?还有哪一行是未定义的变量?控制器中没有任何语法错误。当我打印值(@foreach$pacra as$data)$data->Entity(@endforeach)时,在视图文件中显示错误此处显示不存在属性实体。您将结果声明为
$pacra['pacra']
,因此需要执行
foreach($pacra['pacra']作为$data)
我的对象没有问题。当我一个接一个地运行查询时,没有错误。但是当两个查询同时显示错误时,您可以向我们提供有关错误的更多信息吗?也许您可以执行
dd($pacra,$jcr);
并与我们共享结果。或者,如果之前抛出了错误,也许您可以从您获得的
存储/logs/laravel.log
(或存储/logs/*.log)复制并粘贴它。您可以在控制台终端中从项目目录运行
tail-f存储/logs/laravel.log