Laravel框架安装
composer安装
-
安装composer
下载composer安装包
https://getcomposer.org/Composer-Setup.exe
注意:PHP配置文件php.ini中extension=php_openssl.dll打开,打开方式将前面的“;”去掉
-
切换到国内镜像
执行命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com 国内镜像: 阿里云:https://mirrors.aliyun.com/composer/ 腾讯云:https://mirrors.cloud.tencent.com/composer/ 华为 :https://mirrors.huaweicloud.com/repository/php/ Packagist / Composer 中国全量镜像:https://packagist.phpcomposer.com Composer / Packagist 中国全量镜像:https://php.cnpkg.org Packagist / JP:https://packagist.jp Packagist Mirror:https://packagist.mirrors.sjtug.sjtu.edu.cn/ Laravel China Composer 全量镜像:https://packagist.laravel-china.org 此处推荐阿里云的镜像
-
使用 Composer 下载 Laravel 安装程序
composer global require "laravel/installer"
-
使用Composer创建项目并安装Laravel
在项目根目录中打开cmd面板或在cmd面板中切换到项目根目录,执行命令: composer create-project --prefer-dist laravel/laravel web "5.5.*" web项目目录名, "5.5.*"指定安装的Laravel框架的版本
-
安装完成后,在浏览中访问项目目录中的server.php(或将其改为index.php)或者public/index.php
可以看到欢迎界面,如果打开页面不成功,可能是因为文件不够完整,解决方法: 在项目目录中,打开cmd面板,执行命令: composer update 更新依赖包
目录结构
app:应用核心代码目录
bootstrap:目录包含引导框架并配置自动加载的文件。该目录还包含了一个 cache 目录,存放着框架生成的用来提升性能的文件,比如路由和服务缓存文件。
config:配置文件目录
database:数据库配置目录
public:公共目录,入口文件index.php存放位置
resourcse:目录包含了视图和未编译的资源文件(如 LESS、SASS 或 JavaScript)。此目录还包含你所有的语言文件。
routes:路由文件存放目录
storage:目录包含编译的 Blade 模板、基于文件的会话和文件缓存、以及框架生成的其他文件。
tests:目录包含自动化测试文件。文件类型“.test”
vendor:Composer依赖包
控制器
控制器文件存放在app/Http/Controllers目录中
命名规则:
驼峰命名法
类名以Controller结束,如:UserController
类文件名与类名一致
......
定义控制器:
声明命名空间
namespace App\Http\Controllers;
载入控制器基类(在需继承的情况下)
use App\Http\Controllers\Controller;
定义类
class ControllerNameController extends Controller{
//function
}
访问控制器:
通过路由设置URI访问,路由定义在routes/web.php路由文件中:
如:
Route::get('a','ControllerName@FunctionName')
浏览器地址栏中输入:
http://servername/public/index.php/a
或者
http://servername/server.php/a
如果将server.php改名为index.php:
http://servername/index.php/a
如果访问的操作中需要参数传递,路由定义:
Route::get('a/{ParamName}','ControllerName@FunctionName')
'a/{ParamName}'中间的间隔符'/'可以自定义,如$,&,*等,百分号“%”不行
当有多个参数传递时:
Route::get('URI[间隔符{参数名}间隔符{参数名}......]','控制器类名@访问的操作名')
当控制器存放在app/Http/Controllers下的某个子目录中时,在定义路由时,需将其所在的子目录名一起写入:
Route::get('URI[间隔符{参数名}间隔符{参数名}......]','子目录名\控制器类名@访问的操作名')
视图
存放在resources/views目录中,文件命名:文件名.blade.php
渲染:
view('模板文件名')
如:resources/views/index.blade.php
view('index');
如果文件在resources/views下的子目录中时,如:
resources/views/admin/index.blade.php
view('admin.index');
模板变量赋值:
view('模板文件名',数组)
第二个参数为数组,在数组中设置键值对进行传值,在模板文件中以{{$键名}}输出对应的值
如:
view('index',['title'=>'标题','content'=>'内容']);
在模板文件中输出:
{{$title}}
{{$content}}
数据库
可在.env文件中配置数据库连接信息
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=root
或在config/database.php中配置
使用DB类操作数据库
载入DB类
use Illuminate\Support\Facades\DB;
查询
DB::select('sql语句'[,array])
第二参数是数组,设置sql条件
如:
DB::select('select * from admin',['id'=>2])
查询id=2的记录
更新
.......
ajax数据请求
条件:需提交csrf-token字段,进行安全过滤:
在html头加入:<meta name="csrf-token" content="{{ csrf_token() }}">
在ajax中回填表单字段
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
如:
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: 'POST',
url: '{{url("URI")}}',
data: {uname:uname,upass:upass},
dataType: 'json',
async : 'false', //同步
success: function(data){
},
error:function(data){
}
});