前面笔记写到了环境的安装,那我们今天就用下比较流行的laravel框架
第一步 安装Composer
将composer安装到系统环境变量PATH所包含的路径中,这样以后直接输入composer就能执行composer命令了
curl -sS http://getcomposer.org/installer |sudo php -- --install-dir=/usr/local/bin --filename=composer
这样就是显示安装成功。 可以看到版本是 1.5.1的
第二步 切换资源库,由于国内访问国外网站速度极慢,我们使用packagist中国全量镜像的链接。
修改我们的composer的配置
composer config -g repositories.packagist composer https://packagist.phpcomposer.com
注意此处提示信息为,不建议使用root用户执行配置操作,我们切换到装镜像设置的用户,或者可以自行添加一个用户,切换后执行
第三步 创建项目目录,执行安装程序
3.1 创建目录
mkdir -p /var/www/ 如果提示mkdir: cannot create directory ‘/var/www/’: Permission denied 没有权限
3.1.1 修改用户lipy(此处是你创建的用户)的权限
切到root用户 执行 vim /etc/sudoers
在%admin ALL=(ALL) ALL 下面新增
lipy ALL=(ALL) ALL 保存退出,重启虚拟机
3.2 执行安装
composer create-project laravel/laravel test 5.1.4 (test是项目名 后面5.1.4是项目版本 不带版本号默认装最新环境)
如果安装过程中提示Script php artisan clear-compiled handling the pre-update-cmd event returned with error code 255
执行php artisan clear-compiled删除已经编译的类文件,
进入test项目目录,编辑compser.json文件
删除 "pre-update-cmd":[
"php artisan clear-compiled"
]
在 "post-update-cmd": [
"php artisan clear-compiled"
(新增这一句)
]
然后执行composer update就行了
第四步 目录介绍
详细目录介绍 http://zoufeng.me/2015/07/22/laravel5-1-dir-analysis/
第五步 连接数据库
进入项目目录,修改 .evn文件
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
第六步 整合smarty模板
安装smaryt模板
composer require latrell/smarty dev-master
执行composer update 更新依赖包
然后在config/app.php里面注册smarty
'providers' => [
// ...
'Latrell\Smarty\SmartyServiceProvider',
]
然后运行php artisan vendor:publish
生成smarty配置文件
到此smarty就整合进来了
第七步 路由、控制器和视图
7.1 路由和试图
Laravel应用的 大多数路由都将在 app/Http/routes.php 中定义,大多数基本的 Laravel 路由
都只接受一个 URI 和 一个 闭包(Closure) 参数。下面是一个简单的GET路由:
Route::get('/', '[email protected]');
1. Route: 声明一个路由;
2. get:即定义一个GET路由,除get外,还有post、put、delete路由;
3. /:即指向网站
4. [email protected]:前面为控制器,后面是调用控制器中的方法
该路由是用户访问根目录 / 时,执行控制器WelcomeController中的index方法。
public function index()
{
return view('welcome');
}
上面路由调用控制器app/Http/Controllers/WelcomeController.php中的index()方法:
该方法返回了一个welcome视图,该视图即为
resources/views/welcome.tpl(我们上面配置的Smarty模板视图文件)
方法中除了可以返回字符串,也能返回json数据(API开发)或html、tpl等视图文件等
返回视图文件同时返回数据的方法:
Return view(‘视图名称’,’data’)
Return view(‘视图名称’)->with(‘data’,$data);
Data可以为字符串、数组等
视图页面直接使用smarty引擎获取数据展示
因为laravel数据库查询的结果是一个包含对象的数组
array(1)
{
[0]=> object(stdClass)#31 (1) {
["name"]=> string(24) "这是一个测试~~" }
}
不能直接用{$data[‘name’]}或者{$data.name}来显示,正确的输出方法是:{$data->name}
7.2 控制器
使用php artisan命令创建Controller 命令
php artisan make:controller AdminController
创建的controller包含基本的方法(index、show、create等)
php artisan make:controller AdminController –plain
创建不包含任何方法的Controller文件
第八步 数据库操作
8.1 简介
Laravel 让连接数据库和执行查找变得相当容易。数据库相关配置文件都在 config/database.php。
在这个文件你可以定义所有的数据库连接,以及指定默认的数据库连接。
默认文件中已经有所有支持的数据库系统例子了
目前 Laravel 支持四种数据库系统: MySQL、Postgres、SQLite、以及 SQL Server
Laravel支持读写分离配置
我们加了两个键值到配置文件数组中: read 及 write,这样就实现了读写分离。
8.2 数据库简单操作
执行 Select 查找:$results = DB::select('select * from users where id = ?', [1]);
select 方法会返回一个 array 结果。
执行 Insert 语法:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
执行 Update 语法:DB::update('update users set votes = 100 where name = ?', ['John']);
执行 Delete 语法:DB::delete('delete from users where id=?‘,[‘1’]);
update 和 delete 语法会返回在操作中所影响的数据个数。
Laravel还为我们提供了更简单的数据操作“查询构造器”
数据库查询构造器 (query builder) 提供方便、流畅的接口,用来建立及执行数据库查找语法。
在你的应用程序里面,它可以被使用在大部分的数据库操作,而且它在所有支持的数据库
系统上都可以执行。
添加数据进数据表
DB::table('users')->insert(
['email' => '[email protected]', 'votes' => 0]
);
如果数据表有自动递增的ID,可以使用 insertGetId 添加数据并返回该 ID:
$id = DB::table('users')->insertGetId(
['email' => '[email protected]', 'votes' => 0]
);
添加多个数据进数据表
DB::table('users')->insert([
['email' => '[email protected]', 'votes' => 0],
['email' => '[email protected]', 'votes' => 0]
]);
更新数据表中的数据
DB::table('users')
->where('id', 1)
->update(['votes' => 1]);
自增或自减一个字段的值
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
也能够同时指定其他要更新的字段:
DB::table('users')->increment('votes', 1, ['name' => 'John']);
删除数据表中的数据
DB::table('users')->where('votes', '<', 100)->delete();
删除数据表中的所有数据
DB::table('users')->delete();
清空数据表
DB::table('users')->truncate();
从数据表中取得所有的数据列
$users = DB::table('users')->get();
foreach ($users as $user)
{
var_dump($user->name);
}
从数据表中取得单一数据列
$user = DB::table('users')->where('name', 'John')->first();
从数据表中取得单一数据列的单一字段
$name = DB::table('users')->where('name', 'John')->pluck('name');
取得单一字段值的列表
$roles = DB::table('roles')->lists('title');
这个方法将会返回数据表 role 的 title 字段值的数组。你也可以通过下面的方法,为返回的数组指定自定义键值。
$roles = DB::table('roles')->lists('title', 'name');