1. 程式人生 > >laravel5.2路由,控制器,檢視,模型

laravel5.2路由,控制器,檢視,模型

                         laravel5.2路由,控制器,檢視,模型

1  路由(App\Http\routes.php)

<?php

Route::get('/', function () {
    return view('welcome');
});
// 普通路由 http://127.0.0.1:8082/laravel5.2/public/user
Route::get('user',function(){
	return 'user';
});
// 指定多種請求 
Route::match(['get','post'],'user',function(){
	return 'user';
});
//所有請求
Route::any('foo', function () {
   return 'any';
});

// 路由引數 http://127.0.0.1:8082/laravel5.2/public/name
Route::get('name/{id}',function($id){
	return $id;
});
// 可選引數 限制引數where http://127.0.0.1:8082/laravel5.2/public/name/1
// 有時候可能需要指定可選的路由引數,這可以通過在引數名後加一個 ? 標記來實現,這種情況下需要給相應的變數指定預設值:
Route::get('name/{id?}',function($id=1){
	return $id;
})->where('id','[0-9]');
// 路由別名 http://127.0.0.1:8082/laravel5.2/public/user/1
// 命名路由為生成 URL 或重定向提供了便利,在定義路由時使用陣列鍵 as 指定路由名稱
Route::get('user/id',['as' => 'pro',function(){
	return Route('pro');  //會輸出 http://127.0.0.1:8082/laravel5.2/public/user/id
}]);
// 路由群組 http://127.0.0.1:8082/laravel5.2/public/admin/a
Route::group(['prefix' => 'admin'], function () {
	// 路由a路由b都加了個字首 admin
    Route::get('a', function () {
        return 'a';
    });
     Route::get('b', function () {
        return 'b';
    });
});



2 控制器 namespace App\Http\Controllers;

路由裡繫結控制器/方法

routes.php:

// --- 控制器與路由 ---
// Route::get('member/info','[email protected]');
//或者 
Route::get('member/info', ['uses' => '[email protected]','as'=>'m']);
// 設定引數 和 別名 和 限制引數
Route::get('mem/{id}', ['uses' => '[email protected]
'])->where('id','[0-9]+');

MemberController.php

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;

class MemberController extends Controller{
	public function info(){
		return route('m');  //http://127.0.0.1:8082/laravel5.2/public/member/info
	}
	public function id($id){
		return '使用者id:'.$id;
	}
}

3 檢視

檢視的地址在App\resources\views下,可以自定義資料夾

路由裡直接輸出檢視

routes.php:

//路由中出檢視
Route::get('view',function(){
	return view('welcome'); // App\resources\views\welcome.blade.php
});

控制器裡輸出檢視(路由裡繫結控制器/方法,在控制器/方法裡輸出檢視)

先在路由裡繫結控制器/方法:

routes.php:

Route::get('member/info', ['uses' => '[email protected]','as'=>'m']);

再在控制器裡輸出檢視

MemberController.php:

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Member;
class MemberController extends Controller{
	public function info(){
        //輸出檢視檔案 App\resources\views\info.blade.php 以及註冊兩個變數
		return view('member/info',['name'=>'su','age'=>18]);
	}

}

檢視檔案輸出變數

info.blade.php:

{{$name}}
{{$age}}

4 模型 namespace App;

地址在:App下

App\Member.php:

<?php
namespace App;
use Illuminate\database\Eloquent\Model;
class Member extends Model{
	public function m(){
		return 'member';
	}
}

通過控制器呼叫模型裡的方法

MemberController.php:

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Member;  //引入模型類的名稱空間
class MemberController extends Controller{
	public function info(){
		$member = new Member();
		echo $member->m();    //'member'
	}
}