laravel5.2路由,控制器,视图,模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41179401/article/details/84955742

                         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','MemberController@info');
//或者 
Route::get('member/info', ['uses' => 'MemberController@info','as'=>'m']);
// 设置参数 和 别名 和 限制参数
Route::get('mem/{id}', ['uses' => 'MemberController@id'])->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' => 'MemberController@info','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'
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41179401/article/details/84955742