溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Laravel框架中綁定路由和控制器

發(fā)布時間:2021-04-13 17:03:19 來源:億速云 閱讀:168 作者:Leah 欄目:開發(fā)技術

本篇文章給大家分享的是有關怎么在Laravel框架中綁定路由和控制器,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

路由和控制器的關系

路由文件地址在\app\Http\routes.php,我們來看兩種不同的路由。

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

以上均為綁定匿名函數(shù)的路由,雖然可以返回視圖,也可以返回字符串,但本質(zhì)都是一樣的。

Route::get('/blog','BlogController@index');
Route::get('/post/{slug}','BlogController@showPost');

這兩種是綁定控制器的路由,控制器類BlogController下有兩個函數(shù),index和showPost,可以調(diào)用。

那么問題來了,究竟應該選用哪種?

你不可能把復雜的業(yè)務邏輯都寫在一個匿名函數(shù)里,所以你要學會新建控制器。

Route::get('/mvc', 'MyController@hello');

添加新控制器

控制器文件夾地址在Laravel文件夾下\app\Http\Controllers,我們繼續(xù)使用artisan控制臺創(chuàng)建一個新控制器

php artisan make:controller MyController

然后,回到控制器目錄,一份新的MyController.php文件被創(chuàng)建了,代碼如下:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class MyController extends Controller
{
  //
}

我們修改MyController類,同時再創(chuàng)建一個視圖。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class MyController extends Controller
{
  public function hello()
  {
    return View('myview');
  }
}

如果這么寫,就意味著一旦用戶訪問URL:laravel/public/mvc,路由就會交給MyController控制器的hello函數(shù),hello函數(shù)返回myview視圖,即返回myview.blade.php

我們看看myview.blade.php的代碼

@extends('layouts.app')
@section('content')
<div class="container">
  <div class="row">
    <div class="col-md-10 col-md-offset-1">
      <div class="panel panel-default">
        <div class="panel-heading">{{ $d1 }}</div>
        <div class="panel-body">
          this is my view!
        </div>
      </div>
    </div>
  </div>
</div>
@endsection

這里的{{ $d1 }}希望用一個變量的值來代替,所以,我們把MyController控制器修改為

class MyController extends Controller
{
  public function hello()
  {
    return View('myview',['d1'=>'a1']);
  }
}

以上就是怎么在Laravel框架中綁定路由和控制器,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI