laravel 基礎知識總結
阿新 • • 發佈:2017-09-03
arr -c rem 條件 -type 存在 line 網站 int 1.請求類型
get , put , post , patch , delete 等
2.路由訪問方式
get , post , any , match([‘get‘,post])
3.路由傳參
Route::get(‘user/{id}‘ ,function ($id){
});
Route::get(‘user/{name}/{id}‘,function($name,$id){
});
4.傳遞可選參數
Route::get(‘user/{name?}‘,function($name = value){
});
5.參數限制
Route::get(‘user/{name}‘,function(){})->where(‘name‘,‘[A-Za-z] + ‘);
Route::get(‘user/{id}/{name}‘,function([‘id‘=>‘[0-9]+‘,‘name‘=>‘[a-z]+‘]));
6.模版中的寫法
<h1><?php echo $title; ?></h1>
<p> {{$msg}}</p>
7.創建數據庫
create database 庫名 charset utf8
8.修改配置文件
在.env文件中進行修改
9.創建遷移文件
php artisan make:migration create_good_table --create=goods
執行這句命令 php artisan migrate
10.創建Model 文件控制表名,主鍵
php artisan make:model 表名
11.遷移文件操作
up()負責建表,加列,加索引
down()負責刪表,減列,去索引
public function up(){
Schema::table(‘goods‘,function(Blueprint $table){
添加
$table->char(‘email‘,50);
});
Schema::table(‘goods‘,function ($table{
刪除
$table->dropColumn(‘email‘);
}));
}
12.數據庫遷移一操作
php artisan migrate:rollback 會退
php artisan migrate:reset 回退到初始狀態
13.DB類操作數據庫(Model)
insert 添加操作
DB::table()->insert(插入字段);(插入一維多維數組,返回true,false)
14.插入後返回主鍵值,獲取主鍵值 insetrGetld();
$id = DB::table(‘goods‘)->insertGetId($rows);
15.update 修改操作
.典型的修改
DB::table(‘users‘)->where(‘id‘,1)->update([‘age‘=>19]);
相當於
update users set age = 19 where id =1;
在某值的基礎上增長或者減少(默認1)
增長increment(‘健‘,步長);減少decrement();
16.delete刪除操作
var_dump(DB::table(‘goods‘)->where(‘id‘,‘>‘,3)->delete());
where 有三個參數是,第二個參數當做運算符
17.select查找
DB::table(‘goods‘)->get();
DB::table(‘goods‘)->where(‘id‘,‘>‘,6)->get();
DB::table(‘goods‘)->select(‘id‘,‘email‘)->where()->get();
DB::table(‘goods‘)->where(‘id‘,6)->first();
18.表單提交要加一段_token();
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
19.不解析模版和防xss 攻擊
在前段模版引擎中,用{{}}做表簽邊界
為防止blade 模版去解析前面加@
例如@{{$jang}}
[‘code‘=>‘<script>alert(1)</scriptt>‘]
<script>alert(1)</script>
20.Model 放在/app目錄下面,命名空間App
Model 繼承Illuminate\Database\Eloquent\Model
引入new \App\Msg()
21.自動生成和實例化
php artisan make:model Msg
22.增加
$msg->save();
23.查找
按鍵值查找
Msg::find($id);
按where 條件查找具體的那一條
Msg::where(‘id‘,‘>‘,3)->first();
查找多行all() 和 get()
24.delete 刪除
Msg::where(‘id‘,$id)->delete();
25.復雜查詢
asc 升序 desc 降序
orderBy(‘id‘,‘desc‘) 根據id排序
Msg::count();數數
Msg::avg(‘id‘);求平均值
Msg::min(‘id‘);最小值最大值
Msg::sum(‘id‘);求和
26.與Model有個約定
調整表名,主鍵值,屏蔽新增鍵值
27.控制器的生成
php artisan make:controller ArticleController --plain
--plain 去掉默認顯示的
28.緩存位置
config/cache.php 默認用到的緩存驅動 file 其他緩存Memcached 和Redis
30.緩存調用
use Illuminate/Support/Facades/Cache
Cache::put(‘key‘,‘value‘,$minutes);
31.添加緩存
換存不存在添加緩存,緩存已經存在返回true,否則false
Cache::add(‘key‘,‘value‘,緩存時間);
持久話存儲緩存
Cache::forever(‘key‘,‘val‘);
儲存緩存放在storage/framework/
32.獲取緩存
Cache::get(‘key‘,‘default‘);
如果有緩存輸出緩存如果沒有緩存返回default
pull 獲取緩存後刪除
33.刪除緩存
Cache::forget(‘key‘);
清除所用緩存
Cache::flush();
判斷緩存是否存在
Cache::has(‘key‘);
34.Request對象
請求方式(get/post)
請求參數($\post,$\FILES)
請求路徑(域名後的部分)
請求Cookie等諸多信息
input 函數
35.利用Request對象做文件上傳
Route::get(‘msg/fil‘,‘[email protected]‘);
Route::post(‘msg/ups‘,‘[email protected]‘);
控制器
public function fil(){
return view(‘msg.fil‘);
}
public function ups(){
$req->file()->move(‘上傳文件地址‘,為文件起的名字);
}
判斷文件上傳是否成功
isvalid();即實例變量的值是否是個有效的對象句柄
hasFile();屬性獲取一個值,該值指示 FileUpload 控件是否包含要上載的文件。 在對要上載的文件執行操作之前,使用該屬性來驗證該文件是否存在
36.隱式控制器
Route::controller(‘article‘,‘ArticleController‘);
37.資源控制器
make:controller ArtisanController
Route::resource(‘article‘,‘ArticleController‘);
查看功能
php artisan route:list
38.laravel 緩存應用
靜態緩存,查詢緩存,數據緩存
靜態緩存:緩存的整個頁面;
動態緩存:存儲數據庫中的數據進行了緩存,既“通過動態緩存,不需要再讀取數據庫了,直接通過緩存文件來調取相應的數據”;
動態緩存:直接從緩存中讀取,不經過數據查詢;
39.緩存
存儲緩存
Cache::put(‘key‘,‘value‘,$minutes);
40.laravel 中的路由與TP中的相比較
laravel 中的路由非常靈活,TP的路由是 模塊/控制器/方法 TP 不能叫路由,只是URL與控制器的對應關系,或者叫URL分發;
41.設計區別laravel 連接網站的全過程,數據庫+MVC+錯誤處理
42.laravel
array_collapse 函數將數組的每一個數組折合成單個數組:
str_limit(‘字符串‘,$num); 該函數接受一個字符串作為參數,以及最大字符數量作為第二個參數;
str_random();函數生成指定長度的隨機字符串
e 函數對指定字符串進行實體轉義,相當於htmlentities;
echo e(‘<html>foo<html>‘);
<html>foot;/html>
app_path() 返回當前項目的絕對路徑 app 目錄下的絕度路徑
$path = app_path();
base_path() 返回項目的絕對路徑
$path= base_path();
config_path() 返回項目的配置文件所在目錄
public_path() 返回項目的公共文件所在目錄(js,css,img ...)
attempt() 驗證信息
url() 生成規則url
action() 配合路由器,生成規範 URl
bcrypt() 加密密碼 (用戶密碼加密可以在創建數據庫時進行加密)
config() 讀取 配置值
csrf_field() laravel 防止跨網站請求偽造攻擊 用該命令用於驗證授權用戶和發送請求是否是同一個用戶
<form method="post" actisan="/">
{{ csrf_field() }}
...........
</form>
request() 得到當前的request 對象
$req = request();
dd($req);
43.表單類型
primary (key) 主鍵值
string 字符串
enum 選擇(‘男’,‘女’)
integer 整形
tinyint 整形(占一個字節)
int 整形(占四個字節)
auto_increment 屬性自增
rememberToken() laravel 中記錄用戶cookie
44.在模版中直接打印出錯情況
{{print_r($errors)}}
45.路由分組
Route::group(
[‘prefix‘=>‘auth‘,‘namespace‘=>‘Auth‘],
function(){
Route::get();
Route::post();
}
);
46.獲取登入用戶信息
$user = Auth::user();
$user = $request->user();
通過$user 實例化,可以拿到當前登入用戶的信息
public function jiePost(Request $req){
$user = $req->user();
}
47.控制器模版展示view(‘she‘,[‘pro‘=>$pro,‘att‘=>$att]); 已數組的形式進行展示
48.頁面跳轉
redirect(‘/prolist‘);
49.where 的用法
where(‘name‘,‘like‘,‘T%‘)
whereBetween(‘votes‘,[1,100]); 在某值的範圍中
whereNotBetween(); 不在某值的範圍中
insertGetId 自增ID
intval(); 將變量轉成整形
50.中間件
if else 判斷的越來越多,會使代碼更加難維護,系統間的的偶合性會增加,中間件解決了這個問題
生成中間件
php artisan make:middleware EmailMiddleware
生成的中間件位於
/app/Http/Middleware/EmailMiddleware
51.strtoupper() 函數把字符串轉化為大寫
52.分頁功能
DB::table()->paginate(2);
return view(‘myze‘,[‘hks‘=>$h]);
laravel 基礎知識總結