laravel初始化配置
1、wamp版本需求(PHP 版本 >= 5.5.9|Wamp2.5)
2、开启rewrite和vhost
C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf
3,进入C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf,添加一块下面这样的代码
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "e:/code/laravel/public/"-------框架安装目录
ServerName minshop.com--------------访问项目的域名
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
4、在d:\wamp\bin\apache\apache2.4.9\conf\httpd.conf这个文件中开启下面这些php扩展
php.ini:C:\wamp\bin\php\php5.5.12\php.ini
extension=php_openssl.dll
extension=php_mbstring.dll
extension=php_pdo_mysql.dll
5,最后进入c:\windows\system32\drivers\etc\hosts,强hosts使用记事本打开,在底部加入127.0.0.1 项目访问域名如(minshop.com)
这一步修改可能由于没有权限无法修改,可以将文件拷贝出来,在别处修改完成后在复制过来覆盖原有的文件即可
laravel路由
首先先介绍一下常用的artisan命令:
1,php artisan list-----------------产看所有的artisan命令
2,php artisan make:controller 控制器的名称-------这一条命令时创建一个新的控制器
3,php artisan make:middleware 中间件的名称-------这一条命令时创建一个中间件
4,php artisan route:list-----------------------这一条命令时查看routes.php这个文件中创建的路由
1,表示加载框架首页,第一个参数表示浏览器地址栏的所填参数,第二个是一个必报函数
Route::get('/', function () {
return view('welcome');
});
2,如果没有将public目录下面的.htaccess文件复制到根目录里面,则需要在地址栏中输入blog.com/public/foo 就会输出hello word----------注意,blog.com后面必须加上public 才能正常访问。。。如果已经将.htaccess伪静态配置文件复制到根目录下,则只需输入blog.com/foo就会显示hello word*/
Route::get('/foo', function () {
echo 'get';
});
3,laravel Route postman post 提交TokenMismatchException in VerifyCsrfToken.php line 53;Laravel默认是开启了CSRF功能,需要关闭此功能有两种方法:打开文件:app\Http\Kernel.php,然后把这行注释掉:'App\Http\Middleware\VerifyCsrfToken'*/
Route::post('/foo', function () {
echo 'post';
});
/*Route::put('/foo', function () {
echo 'put';
});
Route::match(['get', 'post'], '/test', function () {
echo "metch";
});
Route::any('/foo', function () {
echo "foo";
});*/
4在地址栏中输入blog.com/user/123 就会输出user 123*/
Route::get('user/{id}', function ($id) {
return 'User ' . $id;
});
5路由参数的约束,限定id的取值只能是0到9,否则将报错
Route::get("user/{id}",function($id){
return 'User'.$id;
})->where('id',"[0-9]+");
6,输出设置的控制器指定的内容
/*Route::get('/login','Admin\LoginController@index');*/
//Route::get('/user/profile','Admin\IndexController@index')->name('profile');
7,路由命名
//profile为http://blog.com/user,也即是路由的别名
/*Route::get('user',['as'=>'profile',function(){
echo route('profile');
return '你好';
}]);*/
//Route::get('user',['as'=>'profile','uses'=>'Admin\LoginController@index']);
//等效于上面的那个写法,只是将as中的路由别名写在了外面的name方法中
//Route::get('user','Admin\LoginController@index')->name('profile');
8,路由分组(将具有相同特性的路由划分到一个组中)
//Route::get('admin/login','Admin\LoginController@login');
//Route::get('admin/index','Admin\LoginController@index');
Route::group(['prefix'=>'admin','namespace'=>'Admin'],function(){
Route::get('login','LoginController@login');
Route::get('index','LoginController@index');
Route::resource('article','ArticleController');
});
其中Route::resource是资源路由,这一条命令可以自动创建出对应的控制器中的方法如:
POST | admin/article | admin.article.store | App\Http\Controllers\Admin\ArticleController@store
GET|HEAD | admin/article | admin.article.index | App\Http\Controllers\Admin\ArticleController@index
GET|HEAD | admin/article/create | admin.article.create | App\Http\Controllers\Admin\ArticleController@create
DELETE | admin/article/{article} | admin.article.destroy | App\Http\Controllers\Admin\ArticleController@destroy
PUT|PATCH | admin/article/{article} | admin.article.update | App\Http\Controllers\Admin\ArticleController@update
GET|HEAD | admin/article/{article} | admin.article.show | App\Http\Controllers\Admin\ArticleController@show
GET|HEAD | admin/article/{article}/edit | admin.article.edit | App\Http\Controllers\Admin\ArticleController@edit
9,中间件---就是在路由上层添加了一层保护或者过滤
1,web中间件中有一个 \Illuminate\Session\Middleware\StartSession::class,意思是开启session服务;
2,自定义中间件
第一步>>>
在kernel.php中的 protected $routeMiddleware = [当中自定义一个如:'admin.login' => \App\Http\Middleware\AdminLogin::class,
意思是在app\Http\middleware中新建一个文件为AdminLogin.php---可以使用php artisan make:middleware AdminLogin来创建文件
第二步>>>
在Adminlogin.php中定义自己的过滤规则就行了
Edit ByMaHua