Laravel学习笔记

1、安装要求

PHP >= 7.2.5
BCMath PHP Extension
Ctype PHP Extension
Fileinfo PHP Extension
JSON PHP Extension
Mbstring PHP Extension
OpenSSL PHP Extension
PDO PHP Extension
Tokenizer PHP Extension
XML PHP Extension

2、安装命令

  • composer安装命令
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
  • laravel安装命令
composer create-project --prefer-dist laravel/laravel 项目名 "6.*"

3、Nginx配置

server {
		listen 80;
		server_name example.com;
		root /example.com/public;

		add_header X-Frame-Options "SAMEORIGIN";
		add_header X-XSS-Protection "1; mode=block";
		add_header X-Content-Type-Options "nosniff";

		index index.html index.htm index.php;

		charset utf-8;

		location / {
			try_files $uri $uri/ /index.php?$query_string;
		}

		location = /favicon.ico { access_log off; log_not_found off; }
		location = /robots.txt  { access_log off; log_not_found off; }


        error_page 404 /404.html;
                location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
                location = /50x.html {
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                        expires 30d;
         }
        location ~ .*\.(js/css)?$ {
                        expires 1h;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
		location ~ \.php($|/) {
			fastcgi_pass   127.0.0.1:9000;
			fastcgi_index  index.php;
			fastcgi_intercept_errors on;
			fastcgi_split_path_info ^(.+\.php)(.*)$;
			fastcgi_param   PATH_INFO $fastcgi_path_info;
			fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			add_header X-Frame-Options SAMEORIGIN;
			include        fastcgi_params;
		}
}

4、laravel配置

  • 修改.env文件中的数据库链接
  • 修改storage文件夹权限 执行命令chmod -R 777 storage
  • 修改config/app.php中的时区,timezone改成 PRC

5、设置路由

  • 在routes/web.php文件中
Route::get('/user',"IndexController@index");

切换到项目目录,执行以下命令,生成控制器

php artisan make:controller IndexController

打开控制器写对应的方法

6、artisan使用(PHP工具匠)

  • 可以创建控制器,创建中间件,生成密钥等
php artisan key:generate # APP_KEY生成
php artisan make:controller IndexController # 控制器生成
php artisan down # 网站下线
php artisan up # 网站下线
php artisan route:list # 查看路由列表

7、路由类型

7.1、可用的路由方法

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

7.2、同时使用多个路由方法

Route::match(['get', 'post'], '/', function () {
    //支持两种方法
});

Route::any('foo', function () {
    //可以接收所有的方法
});

7.3、带参数的路由

Route::get('UserInfo/{name}/{age}', function($name, $age){
    //支持带参数的路由
})

Route::get('user/edit/{id?}', function($id="默认值"){
    //支持默认值参数
})

7.4、路由跳转

return redirect('index');  # 直接跳转到路由地址
return redirect()->name('index'); # 通过路由别名跳转

7.5、路由组

  • /admin 和 /admin/login路由的设置如下,控制器在Admin文件夹下
Route::group(['namespace'=>'Admin','prefix'=>'admin'], function (){
    Route::get('/',"IndexController@index");
    Route::get('/login',"LoginController@login");
});

8、csrf保护

  • 在表单中添加 {{csrf_field()}}
评论