两个函数不在同一视图上运行

时间:2018-11-04 09:20:16

标签: php mysql laravel

我试图从两个不同的表中获取数据并将其显示在一页上,我的意思是在一个视图上显示。但是只有一个功能在同一时间工作,而另一功能则不在,反之亦然。这两个功能是分开工作的,而不是结合在一起工作的。请帮忙。我的代码是给。 PdfContoller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use PDF;
use Auth;

class PdfController extends Controller
{
 public function personalpdf()
    {
        if(\Auth::check()){
            $user = \Auth::user();
            return view('pdf/personalpdf',compact('user'));
        }
        else
        {
            return view('pdf/personalpdf');
        }
    }
  public function personalphd()
    {
        $user_id = Auth::user()->id;
        $result['result'] = DB::table('education')->where('user_id' ,'=', $user_id)->get();
        if(count ($result)>0){
            return view('pdf/personalpdf',$result);
        }
        else
        {
            return view('pdf/personalpdf');
        }
    }
}

我的控制器包含以上两个函数,用于从两个不同的表中获取数据。 我的查看文件是personalpdf.blade.php。

@extends('layouts.app')
@section('content')
<div class="container"><br>
    <h1 class="text-success text-center">Profile</h1><br>
    <table class="table table-bordered">
        @if(isset($user))
        <tr>
            <th>Name</th>
            <td>{{ $user ->tname}}</td>
        </tr>
        <tr>
            <th>Father Name</th>
            <td>{{ $user ->fname}}</td>
        </tr>
        <tr>
            <th>Contact Number</th>
            <td>{{ $user ->phone}}</td>
        </tr>
        <tr>
            <th>Email</th>
            <td>{{ $user ->email}}</td>
        </tr>
        <tr>
            <th>Official Email</th>
            <td>{{ $user ->off_email}}</td>
        </tr>
        @endif
    </table>
    <div class="text text-success text-center">
        PHD Research
    </div>
    <table class="table">
        <tr>
            <th>
                PHD Research Area
            </th>
            <th>University</th>
            <th>Country</th>
        </tr>
        @foreach($result as $value)
        <tr>
            <td>{{$value->research_area}}</td>

            <td>{{$value->univ}}</td>

            <td>{{$value->country}}</td>
        </tr>
        @endforeach

    </table>


    @endsection

我的路线在这里给出。

Route::get('pdf/personalpdf','PdfController@personalpdf');
Route::get('pdf/personalpdf','PdfController@personalphd');
Route::get('/personal','PdfController@personal');

实际上,我想制作一个查看文件,可以在其中查看当前登录用户的所有个人详细信息。在其下方,我想显示他从教育表获得的PHD研究细节。但是我在同一时间只得到一个结果。我的意思是,如果我得到了登录用户的个人详细信息,那么phd详细信息将不会显示;如果我得到phd详细信息,它将为我提供所有的phd详细信息,而不是当前登录用户的详细信息。 请帮忙。

1 个答案:

答案 0 :(得分:1)

class PdfController extends Controller 
    {
        public function personalpdf()
        {
            if(\Auth::check()){
                $user = \Auth::user();
                $user_id = $user->id;
                $result = DB::table('education')->where('user_id' ,'=', $user_id)->get();
                return view('pdf/personalpdf',compact('user', 'result'));
            }else {
                return view('pdf/personalpdf');
            }
        }

    }

路由文件

Route::get('pdf/personalpdf','PdfController@personalpdf');
Route::get('/personal','PdfController@personal');

尝试一下。您必须将用户和结果从同一控制器操作传递到视图。我认为您缺乏Laravel的一些基础知识。在继续之前,请仔细阅读文档。