Laravel快速入门
Laravel 入门30分
文章目录
Laravel 5.5+
安装
服务器要求
- PHP >= 7.0.0
- PDO 扩展
安装Laravel
Laravel利用 Composer
管理依赖 。
确保你的机器安装了 Composer
通过 Laravel 安装器
composer global require "laravel/installer"
安装之后,laravel new
命令创建一个新的 Laravel 项目
laravel new blog
通过 Composer 创建项目
或者,可以通过 create-project
命令来安装 Laravel:
composer create-project --prefer-dist laravel/laravel blog "5.5.*"
本地开发服务器
php astrian serve
可以用 php 内置的 webServe 功能开启一个本地的 web 服务
php -t project-name/public -S localhost:8000
基础知识
路由
-
基本路由
Route::get('hello', function() { return 'Hello World'; }); Route::post('post', function() { return 'this is post route'; }); // 浏览器访问查看,下面注释简写 // http://localhost:8000/hello
-
多请求路由
Route::match(['get', 'post'], 'multy1', function(){ return '多请求路由'; }); Route::any('multy2', function() { return '多请求路由any' })
-
参数路由
Route::get('user/{id}', function($id) { return 'user id is ' . $id; }); Route::get('users/{name?}', function($name='default params') { return 'route with params and has default'; });
-
路由别名
Route::get('parent/member_user', ['as' => 'user', function() { return route('user'); }]);
-
路由群组
Route::group(['prefix' => 'super'], function() { Route::get('user', function() { return 'super user'; }); Route::get('man', function() { return 'super man'; }); }) // super/user // super/man
控制器
知识目标:
- 怎么新建一个控制器
- 控制器和路由怎么关联
- 关联控制器后,路由的特性怎么用
创建一个控制器
MemberController.php
<?php
namespace App\Http\Controller;
use Illuminate\Route\Controller;
class MemberController extends Controller
{
public function info()
{
return 'memberinfo';
}
}
路由关联控制器
Route::get('memberinfo', '[email protected]');
// OR
Route::get('memberinfo2', ['uses' => '[email protected]']);
// 访问
// http://localhost:8000/memberinfo
视图
知识目标
- 怎么新建视图
- 怎么输出视图
视图文件在 resource/views
目录下
新建: member/info.blade.php
info.blade.php
{{$name}} -> {{$age}}
MemberController.php
public function info()
{
return view('member/info', [
'name' => 'WangZheng',
'age' => 18
])
}
模型
知识目标:
- 怎么新建模型
- 怎么使用模型
app目录下就是模式
新建 app/Member.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
public static getMember()
{
return 'WangZheng is super VIP';
}
}
控制器中调用
use App\Member;
class MemberController extends Controller
{
public function info()
{
return Member::getMember();
}
}
操作数据
Laravel 中提供3中操作数据库方式:
- DB facade (原始查找)
- 查询构造器
- Eloquent ORM
知识目标:
- 连接数据库与新建数据表
- 使用 DB facade 实现 CURD
配置文件在 config/database.php
读取的变量是读取 .env
文件中的
DB facade CURD
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
public function test1()
{
// 新增,返回 新增成功 true 或 新增失败 false
$bool = Db::insert('insert into student(name, age) values(?, ?)', ['MM', 18]);
var_dump($bool);
// 改
$num DB::update('update student set age = ? where id = ?', [20, 1]);
var_dump($num);
// 查
$students = DB::select('select * from student');
dd($students); // dd() laravel提供的友好输出函数
// 删除
$row = DB::delete('delete from student where id = ?', [1]);
var_dump($row);
}
}
查询构造器
知识目标:
- 查询构造器简介及新增数据
- 使用查询构造器修改数据
- 删除数据
- 查询数据
- 聚合函数
发现和TP5很像,由此猜测,TP5 借鉴了 Laravel,理由是 Laravel 比 TP5
emm,TP5 I get
新增
public function query1()
{
$bool = DB::table('student')
->insert(['name' => 'name1', 'age' => 19]);
var_dump($bool);
$id = DB::table('student')
->insertGetId(['name'=>'getId', 'age'=> 22]);
var_dump($id);
// 一次增加多条数据用[[],[]]
}
更新
public function query2()
{
$num = DB::tabel('student')
->where(['id' => 3])
->update(['age' => 33]);
}
删除
// 删除
public function query3()
{
$num = DB::table('student')
->where('id', '=', 12)
->delete();
var_dump($num);
// 截断表操作,dangerous
DB::table('student')->truncate();
}
框架开发 Laravel-Admin
我本次学 Laravel 的目的是搭建一个官网的后台,方便推广人员自行更新官网的内容,不要每次修改东西都来找我们前端。现在是大前端时代,还在做切图仔???
抱歉,老子做不到
so,直接入手 Laravel 的一款后台框架,GitHub 一搜,OK,就它了
入门
安装
要求:
php7+
Laravel5.5
首先确保安装好了 Laravel ,并且配置好数据库连接信息
-
配置数据库链接信息
编辑
.env
文件,设置连接数据库的账号、密码、数据库名 -
composer require encore/laravel-admin
运行下面的命令发布资源:
php artisan vender:publish --provider="Encore\Admin\AdminServiceProvider"
生成配置文件 config\admin.php
里面包含数据库链接的配置信息
本人并没有在次找到数据库连接配置信息,本人在
.env
中找到,并修改了配置
安装:
php artisan admin:install
这里我遇到一个问题,创建表的时候报错,数据字段太长
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
解决办法:
找到 app\Providers\AppServiceProvider.php 文件
use Illuminate\Support\Facades\Schema;
public function boot()
{
//FIXME: 创建表报错,Specified key was too long
Schema::defaultStringLength(191);
}
上一篇: VUE学习知识点总结(一)
下一篇: nuxt + vant 适配 rem
推荐阅读
-
使用IntelliJ IDEA 2017.2.5 x64中的Spring Initializr插件快速创建Spring Boot/Cloud工程(图解)
-
Android实现欢迎页快速启动的方法
-
asp.net实现利用反射,泛型,静态方法快速获取表单值到Model的方法
-
怎么才能怀孕,教你几招快速怀孕!
-
小孩打嗝怎么办,这么做快速止嗝!
-
Spring Boot入门(web+freemarker)
-
Python入门教程之运算符与控制流
-
Android利用zxing快速集成二维码扫描的实例教程
-
基于Spring MVC 简介及入门小例子(推荐)
-
mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法