需要注意的幾點..
RBAC的實現(xiàn):
就是用戶表,權(quán)限表,角色表的增刪改查. 用戶登錄時查詢當(dāng)前控制器方法是否在用戶對應(yīng)的角色權(quán)限內(nèi),如果在不做任何操作,如果不在就打回并提示;
time() 輸出當(dāng)前時間的時間戳
date('Y-m-d H:i:s') 輸出當(dāng)前日期時間
date('Y-m-d H:i:s',[ time ]) : 將time時間戳 轉(zhuǎn)為日期時間
strtotime() 將日期轉(zhuǎn)為時間戳
字符串的函數(shù)
$time = time();
echo $time;
echo "<hr>";
// echo strtotime($time);
echo date(
'Y-m-d H:i:s',
1531058347
);
echo "<hr>";
echo date( #當(dāng)前時間
'Y-m-d H:i:s'
);
echo "<hr>";
$arr = [
'a',1,'b',2
];
echo implode($arr,'/'); #將數(shù)組轉(zhuǎn)為字符串
$str = 'a/b/1/2';
echo "<hr>";
print_r(explode('/',$str)); 將字符串轉(zhuǎn)為數(shù)組
JSON_decode
json_decode — 對 JSON 格式的字符串進(jìn)行編碼
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
json_encode
json_encode — 對變量進(jìn)行 JSON 編碼
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
rpm包命令
安裝: rpm -ivh 軟件名 說明:i - 安裝,v - 顯示詳細(xì)信息,h - 顯示進(jìn)度
卸載: rpm -e 軟件名 --nodeps 說明:--nodeps 不檢測依賴性
laravel源代碼包命令 (tar)
【 .tar.gz】解壓命令:tar -zxvf 待解壓的包名
【 .tar.gz】壓縮命令:tar -zcvf 包名 文件路徑
【.tar.bz2】解壓命令:tar -jxvf 待解壓的包名
【.tar.bz2】壓縮命令:tar -jcvf 包名 文件路徑
-z 代表【.tar.gz】 -j代表【.tar.bz2】
-x 代表【解壓】 -c代表【壓縮】
-v 顯示操作詳細(xì)信息
-f 后面必須跟包名
yum 命令
安裝 : yum -y install 軟件名
卸載 : yum -y remove 軟件名
laravel
js獲取當(dāng)前url地址參數(shù)
window.location.href
創(chuàng)建控制器
php artisan make:controller 平臺名\控制器名Controller
創(chuàng)建模型
php artisan make:model Http\Models\Student 平臺名\模型名
創(chuàng)建中間件
語法:php artisan make:middleware 中間件名稱
位置:app\Http\Middleware
需要激活 詳情參數(shù)第四天laravel
創(chuàng)建驗證器
語法:php artisan make:request 驗證類名稱 (注:Check模型名 大駝峰)
位置:app\Http\Requests
創(chuàng)建資源控制器
php artisan make:controller Admin\OrderController --resource
創(chuàng)建資源路由
Route::resource('/order','Admin/OrderController')
創(chuàng)建數(shù)據(jù)遷移文件
php artisan make:migration create_admin_table --create=admin
#執(zhí)行
php artisan migrate
創(chuàng)建測試數(shù)據(jù)填充文件
php artisan make:seeder AdminTableSeeder
#執(zhí)行填充文件
php artisan db::seed --class=AdminTableSeeder
配置路由
Route::HTTP請求方式(url,閉包或控制器方法)
&Route::match(['get', 'post'], 請求的URL, 閉包函數(shù)或控制器方法)
&Route::match(['get', 'post'], 請求的URL, 閉包函數(shù)或控制器方法)
調(diào)用視圖
return view(視圖名稱,compact(變量名1,變量名2......變量n));
視圖模板
blade相當(dāng)于smarty 都是模板引擎
blade視圖文件使用.blade.php作為文件擴(kuò)展名
獲取請求
語法:$request->isMethod('xxx') 判斷請求類型
導(dǎo)入命名空間【use Illuminate\Http\Request】
獲取參數(shù)
?$request->all() 獲取所有數(shù)據(jù)
?$request->input(參數(shù)名,默認(rèn)值) 獲取單個數(shù)據(jù)
?$request->only([參數(shù)名1,...,參數(shù)名n]) 獲取指定數(shù)據(jù)
?$request->except([參數(shù)名1,...,參數(shù)名n]) 獲取指定數(shù)據(jù)外的所有數(shù)據(jù)
url參數(shù)
<form action = "{{ url('msg/add') }}" method="post"></form>
<a href="{{ url("student/del?id=$student->id ") }}" onclick="return confirm('確定要刪除嗎?')">刪除</a>
靜態(tài)參數(shù)
{{ asset('/') }} 指向根目錄 public/
------------二---------------
csrf攻擊 : 就是web中的一種惡意攻擊方式,中文名跨站請求偽造(跨站點攻擊)
打開app\http\kernel.php核心文件開啟cstf攻擊(默認(rèn)開啟)
后期有post提交的表單都必須增加_token鍵
<input type="hidden" name="_token" value="{{csrf_token()}}">
閃存數(shù)據(jù)
閃存:指數(shù)據(jù)存儲在session中但只能讀取一次
說明:閃存的有效期是到下一個請求為止(也就是頁面刷新完畢后則銷毀)
<script type="text/javascript">
@if (Session::has('tips'))
alert("{{Session::get('tips')}}");
@endif
</script>
if($rs){
return redirect(url('msg'))->with(['tips'=>'成功']);
}else{
return redirect(url('msg'))->with(['tips'=>'成功']);
}
內(nèi)置分頁功能使用
$day2s = Day2::paginate(2); #get索引 #first 一條
分頁CSS樣式代碼:https://www.cnblogs.com/lamp01/p/6869762.html
自定義錯誤頁面
操作數(shù)據(jù)庫CURD請看第二天
------------------------三-----------------------
數(shù)據(jù)遷移
手冊http://laravelacademy.org/post/6964.html
創(chuàng)建表: php artisan make: migration create_a_table --create=a #對文件進(jìn)行操作 具體內(nèi)容看第三天
執(zhí)行: php artisan migrate
修改表: php artisan make:migration update_a_table --table=a
執(zhí)行 會報錯 要安裝擴(kuò)展 composer require doctrine/dbal
執(zhí)行 php artisan migrate
填充數(shù)據(jù)
創(chuàng)建填充器:php artisan make:seeder 填充器名稱(Day3T2TableSeeder) (注:表名TableSeeder 大駝峰)
#一個小案例的填充器
public function up()
{
Schema::create('student', function (Blueprint $table) {
$table->increments('id')->comment('編號');
$table->string('uname', 45)->comment('用戶名');
$table->string('pwd', 255)->comment('密碼');
$table->unsignedTinyInteger('age')->default(0)->comment('年齡');
$table->unsignedTinyInteger('sex')->default(1)->comment('性別:1-男,2-女');
$table->integer('created_at')->default(0)->comment('創(chuàng)建于');
$table->integer('updated_at')->default(0)->comment('更新于');
});
}
運行填充器:php artisan db:seed --class=填充器名稱(Day3T2TableSeeder)
faker參考第三天和第一天
加密方式
Laravel存儲用戶密碼非MD5算法,而是使用php5.5新函數(shù)password_hash和password_verify
?加密語法:Hash::make('admin888'); 或者 bcrypt('admin888');
?校驗語法:Hash::check('admin888', 密文);
---------------------------四----------------------------------
視圖頁面布局
@yield('標(biāo)識') 父(公共區(qū)域)定義內(nèi)容片段,子填充
@extends('標(biāo)識') 子繼承父(公共區(qū)域)
@section('標(biāo)識', '默認(rèn)值') 子填充父(公共區(qū)域)文字
@section('標(biāo)識') 子填充父(公共區(qū)域)HTML代碼
存放子頁面內(nèi)容
@endsection
@include('視圖標(biāo)識', ['key' => 'value變量值']) 調(diào)取公共頁面(一般多個子頁面提?。?具體過程參數(shù)laravel第四天
會話技術(shù)
配置在第四天
設(shè)置: Session::put(鍵,值);
獲取指定: Session::get(鍵 [,默認(rèn)值])
獲取所有: Session::all()
判斷: Session::has(key)
刪除指定: Session::forget(key)
刪除所有: Session::flush()
壓入session數(shù)組:Session::push(key, value)
獲取后刪除: Session::pull(key)
閃存: Session::flash(key, value)
輔助函數(shù)
設(shè)置:session([鍵1=>值1,...,鍵n=>值n])
獲取:session(鍵)
Cookie會話
設(shè)置:Cookie::make(鍵,值)
獲?。篊ookie::get(鍵)
$data = Cookie::make('username','itcast')
return redirect(url('/day4/t2))->withCookie($data);
echo Cookoe::get('username')
中間件
中間件:就是HTTP請求交給控制器方法前的過濾層
將HTTP請求交給控制器方法前先交給另一個方法處理
數(shù)據(jù)驗證
在控制器直接使用validate
$this->validate($request,驗證規(guī)則 [,自定義提示信息])
單獨創(chuàng)建驗證類
語法:php artisan make:request 驗證類名稱 (注:Check模型名 大駝峰)
位置:app\Http\Requests目錄
validator門面
$validator = Validator::make(數(shù)組,驗證規(guī)則 [,自定義提示信息])
$validator->passes() 判斷是否成功:true-成功沒有問題,false-失敗有問題
$validator->fails() 判斷是否失?。簍rue-失敗有問題,false-成功沒問題
$validator->messages() 獲取錯誤信息
在視圖中輸出
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
驗證規(guī)則具體請參考第四天
連表查詢
http://laravelacademy.org/post/2774.html
需先下著調(diào)試工具
composer require barryvdh/laravel-debugbar
在config\app 中激活
'providers' => [
Barryvdh\Debugbar\ServiceProvider::class,
]
連表查詢語法:
DB::table(表1)/ 模型名
leftJoin(表2,‘表1.公共字段’,‘=’,‘表2.公共字段’)
->get();
關(guān)聯(lián)模型
一對一
步驟1:定義模型
public function 推薦表名 ()
{
return $this->hasOne(關(guān)聯(lián)模型命名空間,關(guān)聯(lián)模型公共字段,本模型公共字段);
}
步驟2:模型名::with(推薦表名)->get()
步驟3:
foreach($模型名s as $模型名) {
獲取當(dāng)前模型對應(yīng)的表數(shù)據(jù) $模型名->字段名
獲取當(dāng)前模型關(guān)聯(lián)表數(shù)據(jù) $模型名->with處名稱->關(guān)聯(lián)模型字段名;
}
一對多
步驟1:定義模型
public function 推薦表名s ()
{
return $this->hasMany(關(guān)聯(lián)模型命名空間,關(guān)聯(lián)模型公共字段,本模型公共字段);
}
步驟2:模型名::with(推薦表名s)->get()
步驟3:
foreach($模型名s as $模型名) {
獲取當(dāng)前模型對應(yīng)的表數(shù)據(jù) $模型名->字段名
獲取當(dāng)前模型關(guān)聯(lián)表數(shù)據(jù) (腳下留心:多條數(shù)據(jù))
foreach($模型名->with處名稱 as $關(guān)聯(lián)表名) {
$關(guān)聯(lián)表名->關(guān)聯(lián)表字段
}
}
路由2
RESTful
就是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)(思想)
創(chuàng)建資源控制器路由:Route::resource(URL信息,控制器);
Route::resource('/order','Admin/OrderController')
創(chuàng)建資源控制器:php artisan make:controller 平臺名\控制器名Controller --resource
php artisan make:controller Admin\OrderController --resource
緩存/配置文件/文件存儲-上傳
緩存
http://laravelacademy.org/post/6858.html
存儲路徑:storage\framework\cache
設(shè)置:Cache::put(鍵,值,緩存時間/分鐘)
獲?。篊ache::get(鍵
配置文件
http://laravelacademy.org/post/6677.html
config(config目錄下的配置文件名稱.鍵)
#需求1:獲取app配置文件中時區(qū)
echo config('app.timezone') . '<br />';
#需求2:獲取緩存存放目錄
echo config('cache.stores.file.path');
文件上傳
$request->hasFile(上傳框name屬性值)
$request->file(上傳框name屬性值)->isValid()
$filename = $request->file(上傳框name屬性值)->store(子路徑,存儲驅(qū)動器名稱);
----------------------------------------------
存儲驅(qū)動器的名稱:對應(yīng)config/filesystems.php文件的聲明
子路徑:指會在config/filesystems.php文件聲明的上傳文件夾下再創(chuàng)建一個文件
修改config\filesystems.php 配置文件
在disks數(shù)組中新增
'uploads'=>[
'driver'=>'local', #存儲方式: local本地
'root'=>public_path('uploads') #存放位置: public/uploads
],
具體過程參考第四天
用戶認(rèn)證Auth 相關(guān)語法
1.驗證信息并登陸:Auth::guard(參數(shù))->attempt(用戶名和密碼數(shù)組,是否保存用戶狀態(tài):true-是,false-否)
2.檢查狀態(tài):Auth::guard(參數(shù))->check()
3.獲得登陸用戶:Auth::guard(參數(shù))->user()->數(shù)據(jù)庫字段
4.退出登錄:Auth::guard(參數(shù))->logout()
之后模型使用Auth需修改配置文件 具體參考laravel實戰(zhàn)第一天