首页 > 解决方案 > 两个函数不在同一个视图 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 详细信息,而不是当前登录用户的详细信息。请帮忙。

标签: phpmysqllaravel

解决方案


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 的基础知识。请在继续之前浏览文档。


推荐阅读