Laravel 5.2 如果其他条件。 blade 文件不工作
Laravel 5.2 if else cond. in blade file not working
我是 laravel.May 的新人 我知道为什么我的 if else 条件不起作用?问题是,即使管理员已登录,我也看不到此页面上的管理面板按钮和注销按钮。我只看到登录按钮。我想我在 home.blade.php 文件上没有逻辑错误。此问题仅特定于此 blade 文件。其他 blade 文件如果 else 条件正常工作。这是我的 blade 文件。我还分享了这个项目的 github link:https://github.com/TawsifKarim/jambura(它是产品的基本 CRUD 应用程序)所以你可以下载 运行 并检查我的错误views/frontend/home.blade.php 文件
家庭布局。blade.php
<html>
<head>
<title>Product Management</title>
<meta charset ="utf-8">
<link rel="icon" type="png" href="img/favicon.png">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" ></script>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
<script src="js/this.js"></script>
<body>
@yield('content')
</body>
</html>
home.blade.php
@extends('layout.homelayout')
@section('content')
<h2 id="Sitename">Product Management System</h2>
<img id="bannerimg" src="img/bg.jpg" class="img-responsive">
<div class="container-fluid">
<div class="row">
<div class="col-md-2" id="homebutton">
<a href="/" class="btn btn-info btn-lg btn-block" id="Hbut">Home</a>
<a href="/Product" class="btn btn-info btn-lg btn-block" id="Hbut">Products</a>
<a href="#" class="btn btn-info btn-lg btn-block" id="Hbut">Contact us</a>
<a href="#" class="btn btn-info btn-lg btn-block" id="Hbut">About</a>
@if(!Auth::guest())
@if(Auth::user()->user_type_id == 1)
<a href="{{ url('/AdminPanel') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Admin Panel</a>
@endif
@endif
@if(Auth::guest())
<a href="{{ url('auth/login') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log in</a>
@else
<a href="{{ url('auth/logout') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log Out</a>
@endif
</div>
<div class="col-md-10">
<div class="jumbotron">
<p id="startttl"> Laravel Project by Tawsif</p>
<p id="logindes">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex</p>
</div>
</div>
</div>
</div>
@stop
要检查是否有用户登录,只需简单地使用这个
@if(Auth::user())
// your code will be here
@endif
在你的情况下,你可以使用这个
@if(Auth::user())
<a href="{{ url('/AdminPanel') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Admin Panel</a>
<a href="{{ url('auth/logout') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log Out</a>
@else
<a href="{{ url('auth/login') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log in</a>
@endif
在花了几个小时解决这个错误后,我发现我必须将所有路由放在 Web 中间件中的 routes.php 文件中。只有“/”路由在中间件之外这就是为什么它没有工作。所以现在我做了这个->
Route::get('/', function () {
return view('frontend.home');
});
进入这个
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('frontend.home');
});
});
错误已修复 :D
if else 条件运行正常,但 Auth 正在使用会话,并且会话默认在 laravel 5.1 中使用默认中间件启动。
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,//here is starting of session code
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];
但在laravel 5.2中间件组概念是新增的。
laravel 5.2预定义了一组如下所示的中间件。
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
]
];
所以如果你想使用 session 或 auth 你必须像下面这样在路由中添加路由组
Route::group(['middleware' => ['web']], function () {
//here you all routes
});
就是这样。
我是 laravel.May 的新人 我知道为什么我的 if else 条件不起作用?问题是,即使管理员已登录,我也看不到此页面上的管理面板按钮和注销按钮。我只看到登录按钮。我想我在 home.blade.php 文件上没有逻辑错误。此问题仅特定于此 blade 文件。其他 blade 文件如果 else 条件正常工作。这是我的 blade 文件。我还分享了这个项目的 github link:https://github.com/TawsifKarim/jambura(它是产品的基本 CRUD 应用程序)所以你可以下载 运行 并检查我的错误views/frontend/home.blade.php 文件
家庭布局。blade.php
<html>
<head>
<title>Product Management</title>
<meta charset ="utf-8">
<link rel="icon" type="png" href="img/favicon.png">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" ></script>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="{{ asset('css/style.css') }}">
<script src="js/this.js"></script>
<body>
@yield('content')
</body>
</html>
home.blade.php
@extends('layout.homelayout')
@section('content')
<h2 id="Sitename">Product Management System</h2>
<img id="bannerimg" src="img/bg.jpg" class="img-responsive">
<div class="container-fluid">
<div class="row">
<div class="col-md-2" id="homebutton">
<a href="/" class="btn btn-info btn-lg btn-block" id="Hbut">Home</a>
<a href="/Product" class="btn btn-info btn-lg btn-block" id="Hbut">Products</a>
<a href="#" class="btn btn-info btn-lg btn-block" id="Hbut">Contact us</a>
<a href="#" class="btn btn-info btn-lg btn-block" id="Hbut">About</a>
@if(!Auth::guest())
@if(Auth::user()->user_type_id == 1)
<a href="{{ url('/AdminPanel') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Admin Panel</a>
@endif
@endif
@if(Auth::guest())
<a href="{{ url('auth/login') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log in</a>
@else
<a href="{{ url('auth/logout') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log Out</a>
@endif
</div>
<div class="col-md-10">
<div class="jumbotron">
<p id="startttl"> Laravel Project by Tawsif</p>
<p id="logindes">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex</p>
</div>
</div>
</div>
</div>
@stop
要检查是否有用户登录,只需简单地使用这个
@if(Auth::user())
// your code will be here
@endif
在你的情况下,你可以使用这个
@if(Auth::user())
<a href="{{ url('/AdminPanel') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Admin Panel</a>
<a href="{{ url('auth/logout') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log Out</a>
@else
<a href="{{ url('auth/login') }}" class="btn btn-info btn-lg btn-block" id="Hbut">Log in</a>
@endif
在花了几个小时解决这个错误后,我发现我必须将所有路由放在 Web 中间件中的 routes.php 文件中。只有“/”路由在中间件之外这就是为什么它没有工作。所以现在我做了这个->
Route::get('/', function () {
return view('frontend.home');
});
进入这个
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('frontend.home');
});
});
错误已修复 :D
if else 条件运行正常,但 Auth 正在使用会话,并且会话默认在 laravel 5.1 中使用默认中间件启动。
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,//here is starting of session code
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];
但在laravel 5.2中间件组概念是新增的。 laravel 5.2预定义了一组如下所示的中间件。
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
]
];
所以如果你想使用 session 或 auth 你必须像下面这样在路由中添加路由组
Route::group(['middleware' => ['web']], function () {
//here you all routes
});
就是这样。