摘要:什么事是一種類庫依賴關系管理器網(wǎng)址下載命令創(chuàng)建項目項目文件說明是壓縮文件下載到哪個目錄版本在中需要給和賦予權限路由,請求的一級分發(fā)者請求請求資源型請求會多幾條的路由控制器,請求的二級分發(fā)者快速創(chuàng)建控制器查看路由列表控制器給視圖層傳參
1.什么事composer?
composer是一種php類庫依賴關系管理器
網(wǎng)址:https://getcomposer.org/
2.composer下載laravel
composer create-project laravel/laravel --prefer-dist blog 5.2.*
composer命令 創(chuàng)建項目 laravel項目文件 說明是壓縮文件 下載到哪個目錄 laravel版本
在Linux中需要給storage和vender賦予權限
3.路由,請求的一級分發(fā)者
Route::get("/", "IndexController@index"); //get請求 Route::post("/", "IndexController@index"); // post請求 Route::resource("home", "HomeController@index"); // 資源型請求
resource會多幾條的路由
4.控制器,請求的二級分發(fā)者
快速創(chuàng)建控制器
php artisan make:controller HomeController
5.查看路由列表
php artisan route:list
6.控制器給視圖view層傳參
return view("index")->with("name","tong");
或
$data = [ "name"=>"tong", "age"=>18 ]; return view("index",$data);
或
$name = "tong"; return view("index",compact("name")); //等同于["name"=>"tong"]
7.blade模板引擎
7.1什么是blade模板引擎?blade是Laravel框架下的默認模板引擎
輸出
{{$name}} => {{$name or "無名大俠"}} => @{{$name}} //不解析
7.2控制流和循環(huán)
if
@if($anme) 你好{{$anme}}. @else 你叫什么? @endif
foreach
7.3子視圖
//子視圖 - Laravel教程 將公共樣式放在common目錄中,然后引用@include("common.head")
環(huán)境與部署
8.1 數(shù)據(jù)庫
首先看看項目根目錄有沒有.env文件,沒有的話復制.env.example,名字叫做.env,里面存放一些全局的環(huán)境變量參數(shù) DB::connection()->getDatabaseName(); //查看有沒有鏈接成功
8.2 session
8.3 環(huán)境文件
注意:上傳項目的時候一定要注意刪除.env文件
8.4 部署和開發(fā)模式切換
8.5 down/up
比如我們的網(wǎng)站突然發(fā)生了一些大規(guī)模的攻擊或一些其他的問題,造成我們的一些數(shù)據(jù)的丟失,數(shù)據(jù)完整性的問題,數(shù)據(jù)一致性的問題,總之就是一些比較嚴重的問題,以至于我們不得不停下來,首先給用戶一個503頁面,讓用戶知道我們的網(wǎng)站遭遇了一些問題正在搶修,什么時候恢復,或恢復時間不確定,給用戶一個這樣的頁面,遇到這種情況,我們可以直接 php artisan down 給用戶提示,等網(wǎng)站恢復后 php artisan up 讓項目正常運行
9.eloquent--一種和數(shù)據(jù)庫交互的機制,好用,優(yōu)雅
快速創(chuàng)建model:php artisan make:model User
protected $table = "user";//表名 protected $guarded = ["user_id"];//不被賦值的屬性 protected $hidden;//隱藏數(shù)據(jù),禁止查詢 protected $primaryKey = "id";//主鍵 protected $fillable = ["name"];//那些屬性可以被賦值 public $timestamps = false;關閉時間戳字段得添加 $model->findorFail();查詢不到數(shù)據(jù)就報錯 //查詢數(shù)據(jù) $this->all(); //添加數(shù)據(jù) $data = ["useraname"=>"sssss","pwd"=>"sdasdsa"]; $model->fill($data_array());以數(shù)組的形式添加數(shù)據(jù),異常強大不在$this->username = $data["username"]; $model->save(); //修改數(shù)據(jù) $user= $model->find($id); $user->username = "adsadasd"; $user->save(); //批量修改 $user = $this->where("age","<",18); $user->update(["username"=>"adasda","age"=>60]); ///刪除數(shù)據(jù) $user = $this->find($id); $user->delete(); //通過主鍵刪除模型 AppFlight::destroy(1); AppFlight::destroy([1, 2, 3]); AppFlight::destroy(1, 2, 3); //通過查詢刪除模型 $deletedRows = AppFlight::where("active", 0)->delete(); //添加額外約束 $flights = AppFlight::where("active", 1) ->orderBy("name", "desc") ->take(10) ->get();
9.集合
$user = new AppUser(); $users = $user->all(); dd($users); //等同于var_dump($users);die; $users->toArray(); //將集合變?yōu)閿?shù)組 $arr = ["sss","ffffd"]; $collection = collect($arr); //將數(shù)組變?yōu)榧希梢苑奖愕氖褂媒Y合中的方法 $data = $collection->all(); //則又可以獲得數(shù)據(jù)的原型 $bool = $collection->contains("sss");//查看集合中有沒有sss這個值,有的話返回true,沒有返回false $collection->has("sss");//查看集合中有沒有叫sss的鍵 $collection->take(2);//取出集合中的前兩個值,如果為負值,則從后往前取
10.操作用戶產(chǎn)生的數(shù)據(jù)
10.1請求(requset)
10.1.1基礎:獲取用戶提交的數(shù)據(jù)
input::get("name"); //可以獲取url路徑中的值 Request::all(); //返回用戶提交的所有數(shù)據(jù)
10.1.2請求實例
Request::get("name");//接受用戶輸入的數(shù)據(jù);可選的第二個參數(shù),給它一個默認值 Request::query("name");//與get相似,但具有更強的選擇性,固定接受地址欄中的數(shù)據(jù),沒有參數(shù)返回所有數(shù)據(jù) Request::has("name");//查看用戶提交的數(shù)據(jù)中是否有name鍵,并且不為空的時候,返回true;否則false Request::exists("name");//查看用戶提交的數(shù)據(jù)中是否存在name鍵 Request::only("name","age");//限制用戶的輸入,只接受name和age這兩個參數(shù) Requset::except("name","age");//與only()正好相反,除了name和age,其他的參數(shù)都接受 Requset::url();//返回網(wǎng)址(不帶參數(shù)) Requsett::fullUrl();//返回全部網(wǎng)址(帶參數(shù))
10.1.4請求歷史
當用戶提交信息錯誤的時候,把用戶填寫的數(shù)據(jù)再返回去,提高用戶體驗度 Request::falsh();//用戶數(shù)據(jù)處理失敗后,保存之前提交的數(shù)據(jù) Request::falshOnly();//同falsh()一樣,只存某些數(shù)據(jù) Request::falshExcept();//同falsh()一樣,除了這幾個數(shù)據(jù),其他的數(shù)據(jù)都存儲 Request::old();//提交失敗返回后,在拿出之前用戶的數(shù)據(jù)
10.1.5文件
Request::file("myFile");//獲取用戶在請求中所包含的所有文件 Request::hasFile("myFile");//是否有上傳文件,返回bool值 Request::file("myFile")->getSize();獲取文件大小 Request::file("myFile")->getClientOriginalName();//獲取客戶端上傳文件的名稱 Request::file("myFile")->getClientOriginalExtension();獲取客戶端上傳文件的后綴 //可以讓文件多選
11.會話:session
會話用于儲存用戶和服務器之間的一個狀態(tài) Session:::all();//獲取所有的session Session::put($key,$value);/添加一個session Session::get("username");//獲取某個session Session::has("username");//有沒有名叫username的session Session::forget("username");//銷毀某個session Session::pull();用一次之后就被銷毀,可以在用戶修改數(shù)據(jù)的時候,和falsh配合使用
12.會話配置
在laravel中,session默認使用文件存儲的,可對于一個真正跑在線上的項目來說,它對性能的要求是比較高的,尤其是大并發(fā)量的項目,所以說,一半我們能存在數(shù)據(jù)庫,就存在數(shù)據(jù)庫,因為文件的讀取速度不比較慢,下面是具體過程 1.在.env中,修改 SESSION_DRIVER=database 2.生成從存儲session的數(shù)據(jù)表:php artisan session:table 3.composer dump-autoload 重新生成框架的自動加載文件 4.php artisan migrate 執(zhí)行數(shù)據(jù)遷移
除了database,session還可以存儲在cookie,memcache,redis中
13.數(shù)據(jù)驗證
public function create(){ //接收數(shù)據(jù) $data = Request::all(); //驗證數(shù)據(jù) $validator = Validator::make($data,[ "username"=>"required|min:4|max:10|unique:user",//username必填,最少4位,最多10位(between:4,10),user表中要唯一 "pwd"=>"numeric|required"http://pwd必須為數(shù)字,必填,,多個驗證用‘|’隔斷 ]); //對驗證失敗做出相應 if($validator->fails()){ return $validator->errors(); } //驗證成功 return "驗證成功!"; }
14.哈希hash
//hash Route::get("hashmake",function(){ $password = Request::get("password"); $hashPassword = Hash::make($password); Session::put("hashpassword",$hashPassword); return Session::get("hashpassword"); }); Route::get("hashcheck",function(){ $inputpassword = Request::get("password"); $hashpassword = Session::get("hashpassword"); if(Hash::check($inputpassword,$hashpassword)){//第一個參數(shù)是輸入的密碼,第二個參數(shù)是哈希密碼 echo "密碼輸入正確"; }else{ echo "密碼輸入錯誤"; } });
15.幫助函數(shù)
15.1幫助函數(shù)--array
//head()返回數(shù)組中的第一個參數(shù) $arr = ["one","two","three"]; head($arr);//one //array_only() $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_only($arr,["one","two"]);//只要數(shù)組中的one和two鍵的值 //["one"=>"hou","two"=>"li"] //array_first()返回滿足條件的第一個值 $arr1 = [1,2,3]; return array_first($arr1,function($key,$value){ return $value>=2; }); //2 //array_add($arr,$key,$value)向數(shù)組中添加值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_add($arr,"four","zhang"); //["one"=>"hou","two"=>"li","three"=>"zhao","four"=>"zhang"] //array_except($arr,$arr_except)除了什么,返回數(shù)組中其他的值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_except($arr,["two"]); //{"one":"hou","three":"zhao"} //array_flatten將多為數(shù)組轉(zhuǎn)化成以為數(shù)組 $arr = ["one"=>"hou","two"=>"li","three"=>["zhao","zhang"]]; return array_flatten($arr); //["hou","li","zhao","zhang"] //array_where();返回滿足條件的參數(shù) $arr = ["one"=>"hou","two"=>"li","three"=>["zhao","zhang"]]; return array_where($arr,function ($k,$v){ return is_array($v); }); //{"three":["zhao","zhang"]} //array_last()返回數(shù)組中的最后一個值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_last($arr); //zhao
15.2幫助函數(shù)--path
app_path();//返回項目的路徑 config_path();//返回配置路徑 public_path();//返回public的路徑 storage_path();//返回storage的路徑(過程文件的儲存目錄)
15.3幫助函數(shù)--string
str_plural($str);//某個英文單詞的復數(shù),非常智能,不是你所看到的那么簡單 starts_with("asd","a");//該字符傳是否以a開頭,返回bool值 end_with("asd","d");//該字符傳是否以d結尾,返回bool值 camel_case($str);//將字符串轉(zhuǎn)化成駝峰式 class_basename("AppHttpControllersTestController");//只返回TestController str_limit("abcd",3);//abc... 限制字符串的長度,超出后在字符串后加上‘...’ str_is("ab*","abcd");//相當于正則,判斷支付穿是否滿足于某種模式,第一個參數(shù)是條件,第二個參數(shù)是匹配的字符串,返回bool值
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/30588.html
摘要:版微信第三方登陸包括微信微博等等,查看支持列表擴展好用的圖片處理,也方便使用百度版百度版支付集合,包含支付寶等支付寶在的封裝各國語言包,包含簡體中文生成二維碼工具,親測好用未完大家可以向我推薦,直接在本文下留言即可。 Laravel不權威導航 Hi 這里是Roy整理的Laravel相關索引,希望能幫到大家showImg(http://static.segmentfault.com/bu...
摘要:簡介另一個令人喜歡的地方,是擁有活躍的開發(fā)者社區(qū),而活躍的開發(fā)者社區(qū)帶來的,是繁華的擴展包生態(tài)該項目統(tǒng)計了目前下載量最高的個擴展包。記得喲相信下面這些擴展包會讓你的編碼更加高效。排名下載量排名包地址下載次數(shù)描述圖片處理。 簡介 Laravel 另一個令人喜歡的地方,是擁有活躍的開發(fā)者社區(qū),而活躍的開發(fā)者社區(qū)帶來的,是繁華的擴展包生態(tài) ———— @Summer 該項目統(tǒng)計了目前 pack...
摘要:查找保存下載用搭建自己的緩存?zhèn)}庫權限管理的好選擇基于封裝的后臺管理系統(tǒng),支持手機和端訪問支付寶風格的驗證器后臺系統(tǒng)微信接口的部署腳本開發(fā)的博客系統(tǒng)百度推送自動記錄用戶行為擴展一個項目管理系統(tǒng)根據(jù)生成對應導航的狀態(tài) 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
摘要:建立并切換到本地分支沐沐沐也可以直接用刪除本地倉庫里的所有文件除了的文件夾,然后推送沐沐沐這個時候,遠程倉庫的分支便和本地倉庫的分支一樣都是空白的,這樣就可以隨心所欲的推送了。 背景 最近在用laravel開發(fā)微信小程序的接口,因為服務器PHP版本的問題,分別用了laravel 5.6(php 7.1,開發(fā)環(huán)境) 和 laravel 5.4 (php 5.6,服務器環(huán)境),開發(fā)完成后...
摘要:查閱官方文檔后得知,新版為了防止對象的序列化反序列化漏洞被利用,不再對值進行自動的序列化和反序列化處理。舉個栗子更新到后,因為不再自動對值進行序列化處理,而只能加密字符串數(shù)據(jù),這個時候程序就會拋出錯誤。 最近手殘升級了項目里 Laravel 的小版本號(v5.5.39 => v5.5.45),這不升級則已,一升級就出了問題! Sentry 平臺上提示錯誤:openssl_encrypt...
摘要:要學習那么第一步就是要在我們的開發(fā)機上安裝并運行,首先我們會先安裝再使用框架提供的安裝小工具,通過使用就能生成我們的工程了。在的官方網(wǎng)站上的文檔中已經(jīng)很詳細的介紹了如何安裝不過文檔可能講解的并不是那么的細致。從零開始學系列目錄地址 要學習Laravel,那么第一步就是要在我們的開發(fā)機上安裝并運行Laravel,首先我們會先安裝composer,再使用laravel框架提供的安裝小工具,...
閱讀 1008·2021-10-27 14:15
閱讀 2763·2021-10-25 09:45
閱讀 1923·2021-09-02 09:45
閱讀 3357·2019-08-30 15:55
閱讀 1798·2019-08-29 16:05
閱讀 3189·2019-08-28 18:13
閱讀 3109·2019-08-26 13:58
閱讀 442·2019-08-26 12:01