Данные не извлекаются из текущего пользователя в laravel - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь получить данные о текущем входе в систему пользователя, но я получаю результаты всех пользователей в базе данных. Хотя во всех точках зрения проблема одна, пожалуйста, помогите. Мой код дан Мой взгляд - personal.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">
        @foreach($data as $value)
    <tr>
        <th>Name</th>
        <td>{{ $value ->tname}}</td>
        </tr>
        <tr>
            <td>Father Name</td>
            <td>{{ $value ->fname}}</td>
        </tr>
        <tr>
            <td>Email</td>
            <td>{{ $value ->email}}</td>
        </tr>
        <tr>
            <td>Official Email</td>
            <td>{{ $value ->off_email}}</td>
        </tr>
        @endforeach
    </table>
 <div class="form-group">
        <label>Generate Report</label>
        <div class="radio form-control">
            <label class="col-md-4"><input type="radio" name="status" value="conf" >Personal</label>

            <label class="col-md-4"><input type="radio" name="status"  value="general">Publications</label>
        </div>
    </div>
    <button class="btn btn-info" data-toggle="collapse" data-target="#demo"> Generate PDF</button>
    <button class="btn btn-info" data-toggle="collapse" data-target="#demo"> Generate CSV</button>
    <button class="btn btn primary"><a href="home">Go to Home</a></button><br>
    <div id="demo" class="collapse">
        <h3 class="text-success text-center">Complete your publication's detail</h3><br>
        <div class="col-md-offset-3 col-md-6 m-auto d-block">
            <form action="pub" method="post">

                <input type="hidden" name="_token" value="{{csrf_token()}}">

                <div>
 @endsection

Мой контроллер - EducationController.php, и его код указан.

<?php

namespace App\Http\Controllers;
use Auth;
use Illuminate\Http\Request;
use App\education;
use DB;
class EducationController extends Controller
{
    public function show()
    {
        //
        $data['data'] = DB::table('users')->get();
        if(count ($data)>0){
            return view('personal',$data);
        }
        else
        {
            return view('personal');
        }
    }


}

Мой код маршрута указан здесь.

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/personal','EducationController@personal');

Пожалуйста, помогите мне. Я не знаю, как использовать текущего пользователя во всех видах. Я вхожу в систему, в то время как в результате я получаю результат всех пользователей, который хранится в базе данных. заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Это потому, что ваш код предназначен для всех пользователей. Вы должны сделать это так:

<?php

namespace App\Http\Controllers;
use Auth;
use Illuminate\Http\Request;
use App\education;
use DB;
class EducationController extends Controller
{
    public function show()
    {
        $user = Auth::user();
        return view('personal',compact('user'));
        }
    }


}

тогда по вашему мнению:

  <tr>
        <th>Name</th>
        <td>{{ $user->tname}}</td>
        </tr>
        <tr>
            <td>Father Name</td>
            <td>{{ $user->fname}}</td>
        </tr>
        <tr>
            <td>Email</td>
            <td>{{ $user->email}}</td>
        </tr>
        <tr>
            <td>Official Email</td>
            <td>{{ $user->off_email}}</td>
        </tr>

Обратите внимание, что если у вас несколько аутентификаций, вы должны указать свою охрану:

Auth::guard('yourguard')->user();

в противном случае ваш пользователь вернет ноль.

0 голосов
/ 30 октября 2018

Вы используете @foreach, что означает, что вы ожидаете нескольких пользователей в вашем представлении.

Если вы хотите показать детали только для вошедшего в систему пользователя, вам нужно сделать:

<?php

class EducationController extends Controller
{
    public function show()
    {

        if(\Auth::check()){
            $user = \Auth::user();
            return view('personal',compact('user'));
        }
        else
        {
            return view('personal');
        }
    }
}

А по вашему мнению:

@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>
            <td>Father Name</td>
            <td>{{ $user->fname}}</td>
        </tr>
        <tr>
            <td>Email</td>
            <td>{{ $user->email}}</td>
        </tr>
        <tr>
            <td>Official Email</td>
            <td>{{ $user->off_email}}</td>
        </tr>
     @endif
    </table>
    // Rest of view
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...