Laravel 5.5+
Laravel利用 Composer
管理依赖 。
确保你的机器安装了 Composer
composer global require "laravel/installer"
安装之后,laravel new
命令创建一个新的 Laravel 项目
laravel new blog
或者,可以通过 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
namespace App\Http\Controller;
use Illuminate\Route\Controller;
class MemberController extends Controller
{
public function info()
{
return 'memberinfo';
}
}
Route::get('memberinfo', 'MemberController@info');
// OR
Route::get('memberinfo2', ['uses' => 'MemberController@info']);
// 访问
// 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中操作数据库方式:
知识目标:
配置文件在 config/database.php
读取的变量是读取 .env
文件中的
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 的目的是搭建一个官网的后台,方便推广人员自行更新官网的内容,不要每次修改东西都来找我们前端。现在是大前端时代,还在做切图仔???
抱歉,老子做不到
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);
}