Laravel views не работает Session:: ('message'), ни Auth:: user () ->


у меня проблема с Laravel 5.2.

во время аутентификации пользователя и перенаправления на home или login в зависимости от того, сообщения, которые я создаю с помощью Session::flash(), не отображаются для меня, и в home, когда я пытаюсь отобразить имя пользователя, аутентифицированного с помощью Auth::user()->show_name, он дает мне ошибку.

я тестировал внутри контроллера, который я создал для аутентификации, и значения показывают их мне, но когда я перенаправляю на home или login, он ничего не показывает.

что ошибка у меня есть или что я в представлении или в контроллерах?

Modelo::User.php

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    protected $table = 'users_panel';

    protected $fillable = [
        'show_name', 
        'user', 
        'password', 
    ];

    protected $hidden = [
        'password', 'is_admin',
    ];
}

Routes.php

<?php

Route::get('/', function () {
    return view('welcome');
});

Route::get('/orders', function () {
    return view('tp-admin/index', ['class' => 'login contrast-background']);
});

Route::resource('log', 'LogController');
Route::resource('logout', 'LogController@logout');

Route::get('/orders-panel/home', 'HomeController@index');

Route::group(['middleware' => ['web']], function () {

});

LogController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Auth;
use Session;
use Redirect;

use App\User;
use App\Http\Requests;

class LogController extends Controller
{

    public function store(Request $request)
    {
        if($this->LogIn(['user' => $request['user'], 'password' => $request['password']], $request['remember_me'])){

            Session::flash('message', 'Sirve');
            //return Redirect::to('/orders-panel/home');
//-------------------Aqui Mostre  que si estaban llegando los datos a los mensaje
            if(Auth::check()):
                echo Auth::user()->show_name;
                echo '<br>';
                echo Session::get('message');
            endif;

        }else{
            Session::flash('message', 'Error');
//-------------------Aqui Mostre  que si estaban llegando los datos a los mensaje
            echo Session::get('message');
            //return Redirect::to('/orders');
        }
    }

    public function logout()
    {
        Auth::logout();
        return Redirect::to('/orders');
    }

    private function LogIn(array $credentials = [], $remember = false)
    {
        if ($this->ValidCredentials($credentials)) {
            if($this->ValidUser($credentials)){
                Auth::login($this->ValidUser($credentials), $this->ValidRemember($remember));
                return  true;
            }
        }
        return  false;
    }

    private function ValidCredentials($credentials)
    {
        if (($credentials['password'] != '') and ($credentials['user'] != '')) {
            return  true;
        }
    }

    private function ValidRemember($remember = false)
    {
        if(isset($remember)){
            return  true;
        }
    }

    private function ValidUser($credentials)
    {
        return  User::where('user', $credentials['user'])
                    ->where('password', md5($credentials['password']))
                    ->first();
    }

}

HomeController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function __construct()
    {

    }

    public function index()
    {
        return view('tp-admin/home'); 
    }
}

Home.blade.php

@extends('layouts.app')

@section('content')
    <p>
    Aqui deveria salir el mensaje de Session::
        @if(Session::has('message'))
            {{Session::get('message')}}
        @endif
    </p>
    {!! trans('panel.welcome') !!}
    <p>
        <a href="/logout">LogOut</a>
    </p>
@endsection
Author: César, 2016-03-06

2 answers

Вы не включаете сеанс в свои маршруты ,для этого вы должны сгруппировать их (те, которые нуждаются в сеансе) с веб-промежуточным программным обеспечением, это новое с Laravel 5.2:

Route::group(['middleware' => ['web']], function () {
    // Las rutas que necesitan de la sesión aquí
});
 0
Author: Shaz, 2016-03-15 18:48:01

Я немного новичок в laravel, но из того, что я узнал, я думаю, что в промежуточном программном обеспечении вам этого не хватает

Route::group(['middleware' => ['web']], function () {
    //
  });

  Route::get('admin/auth/login',[
    'uses' => 'Auth\AuthController@getLogin',
    'as' => 'admin.auth.login'
  ]);

  Route::post('admin/auth/login',[
    'uses' => 'Auth\AuthController@postLogin',
    'as' => 'admin.auth.login'
  ]);

  Route::get('admin/auth/logout',[
    'uses' => 'Auth\AuthController@logout',
    'as' => 'admin.auth.logout'
  ]);

Кроме того, это мой заголовок всех моих представлений

Route::group(['prefix'=>'admin','middleware' => 'auth'],function(){
 0
Author: Bryan Flores Magallanes, 2016-03-08 00:17:22