注意的幾點

需要注意的幾點..

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)第一天

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容