Две функции не работают на одном и том же виде - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь получить данные из двух разных таблиц и отобразить их на одной странице, то есть в одном представлении. Но только одна функция работает в одно и то же время, а другая - нет, и наоборот. Обе функции работают раздельно, но не совместно. Пожалуйста помоги. мой код дать. 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, а не текущего пользователя входа в систему. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 ноября 2018
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. Пожалуйста, просмотрите документы, прежде чем продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...