如何使用 GET Page 在 laravel 中创建路由?
How to make route in laravel using GET Page?
在使用 laravel 之前,我通常使用如下代码路由我的页面:
//index.php
$get_page=$_GET['page'];
if (empty($get_page) or $get_page=='dashboard')
{
include ('content/dashboard.php');
}elseif ($get_page=='schedule')
{
include ('content/schedule.php');
}
else{
include ('404/404.php');
}
我是否可以像那样路由我的页面,但在 Laravel 中?
我更喜欢使用格式:www.example.com/?page=schedule rather than www.example.com/schedule
laravel只是PHP的农活。所以很相似
将这段代码写在你的 blade 上。
@php $get_page=$_GET['page']; @endphp
@if (empty($get_page) or $get_page=='dashboard')
@include('content.dashboard.php');
@elseif ($get_page=='schedule')
@include ('content.schedule.php');
@elseif
@include ('404.404.php');
@endif
Route::get('/', function (Request $request) {
if($request->query('page')) {
$page = $request->query('page');
return view($page);
}
});
Documentation: https://laravel.com/docs/8.x/routing
你可以在你的控制器中试试这个
public function index(Request $request): JsonResponse
{
$routeName = $request->get('page');
try {
if (isset($routeName))
{
return redirect(route($routeName));
}
return abort(404);
} catch (Exception $exception) {
return abort(404);
}
}
并使用像这样的命名路由
Route::get('dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
所以现在我在 laravel 上的路线是这样的:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request; //have to use this
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/* Route::get('/', function () {
return view('index');
});
*/
Route::get('/', function (Request $request) {
if($request->query('page')) {
$page = $request->query('page');
return view($page);
}else{
return view('index');
}
});
效果很好!
在使用 laravel 之前,我通常使用如下代码路由我的页面:
//index.php
$get_page=$_GET['page'];
if (empty($get_page) or $get_page=='dashboard')
{
include ('content/dashboard.php');
}elseif ($get_page=='schedule')
{
include ('content/schedule.php');
}
else{
include ('404/404.php');
}
我是否可以像那样路由我的页面,但在 Laravel 中? 我更喜欢使用格式:www.example.com/?page=schedule rather than www.example.com/schedule
laravel只是PHP的农活。所以很相似
将这段代码写在你的 blade 上。
@php $get_page=$_GET['page']; @endphp
@if (empty($get_page) or $get_page=='dashboard')
@include('content.dashboard.php');
@elseif ($get_page=='schedule')
@include ('content.schedule.php');
@elseif
@include ('404.404.php');
@endif
Route::get('/', function (Request $request) {
if($request->query('page')) {
$page = $request->query('page');
return view($page);
}
});
Documentation: https://laravel.com/docs/8.x/routing
你可以在你的控制器中试试这个
public function index(Request $request): JsonResponse
{
$routeName = $request->get('page');
try {
if (isset($routeName))
{
return redirect(route($routeName));
}
return abort(404);
} catch (Exception $exception) {
return abort(404);
}
}
并使用像这样的命名路由
Route::get('dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
所以现在我在 laravel 上的路线是这样的:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request; //have to use this
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/* Route::get('/', function () {
return view('index');
});
*/
Route::get('/', function (Request $request) {
if($request->query('page')) {
$page = $request->query('page');
return view($page);
}else{
return view('index');
}
});
效果很好!