摘要:開發根目錄測試分為單元測試和功能測試創建一個文件執行測試測試前清除配置緩存運行單個測試用例小提示在開發與進行交互的第三方擴展包時,最好選擇注入契約而不使用。
參考
https://laravelacademy.org/
契約Contract 就是接口
repository 倉庫(封裝數據訪問,可以搜索:repository模式)
Container 容器
ServiceProvider 服務提供者
Foundation 基礎
$this->app->bind() 綁定契約(接口)
$app->make()
boot extend 覆蓋 修改驅動
提示
英文單詞的 動詞,名詞,單數,復數 不同地方用不同的單詞.例如 seed和seeder
路由## 生成資源控制器路由 ,命令里加上 --resoure 生成帶crud方法的控制器 php artisan make:controller PostController --resource #路由一次性綁定資源方法 curd等 Route::resource("post", "PostController"); #模板內使用路由命名 生成url 100]) }}"> #控制器里使用 路由名字生成url route("post.show", [$id]); #路由分組,組內公用中間件 比如登錄校驗 https://laravelacademy.org/post/9612.html#toc_0 #兜底路由, Route::fallback(function () { return "沒設置路由,會到這里"; }); #頻率限制 利用內置的throttle中間件實現 Route::middleware("throttle:60,1")->group(function () { Route::get("/user", function () { // }); });視圖
#在視圖間共享變量 我們可以在某個服務提供者如 AppServiceProvider 的 boot 方法中定義共享的視圖變量: view()->share("siteName", "Laravel學院"); view()->share("siteUrl", "https://laravelacademy.org"); #通過數組指定多個視圖組件 view()->composer(["partials.header", "partials.footer"], function ($view) { $view->with("posts", Post::recent()); }); 視圖 變量自動htmlentities轉義防止xss ,如果不想自動轉義用{!! $variable !!},例如富文本編輯器的代碼; #注釋 {{-- 注釋內容 --}}npm和前端編譯
npm install 安裝 前端庫
package.json 可類比為前端的 composer.json,我們通過 npm install 安裝該文件中定義的依賴
運行 npm run dev 編譯前端資源
大多數時候我們需要在 resources/js/app.js 和 resources/sass/app.scss 中編寫代碼,引入其它模塊,然后運行 npm run dev 就可以了
讀一遍框架自帶的服務提供者源碼可以幫助你熟悉各種類是怎么綁定進容器的,都綁定到哪些鍵上。這是學習 Laravel 框架底層究竟如何運轉的最佳實踐。
開發config
根目錄.env
php artisan up
php artisan down
創建一個 .env.testing 文件
#執行測試 測試前清除配置緩存 php artisan config:clear vendor/bin/phpunit #運行單個測試用例 vendor/bin/phpunit --filter=UserTest小提示
在開發與 Laravel 進行交互的第三方擴展包時,最好選擇注入 Laravel 契約 而不使用 Facades 。因為擴展包是在 Laravel 之外構建,你無法使用 Laravel Facades 測試輔助函數
路由中間件內置了 表單csrf,表單token
自定義中間件
#該命令會在 app/Http/Middleware 目錄下創建一個新的CheckAge 類 php artisan make:middleware CheckAge常見契約 Contracts
驗證email, user包含 email_verified_at 字段常見方法
only() except() all has exists
$request->input() 智能讀取變量 支持json(需要header頭設置application/json)
表單驗證 $request->validate()
created_at
updated_at
#生成可調用的控制器 php artisan make:controller ShowProfile --invokable #生成資源控制器 --resource參數自帶curd方法的自動生成 php artisan make:controller PhotoController --resource #創建模型 加上-m參數順便創建遷移文件 php artisan make:model -m Models/Post #模型工廠文件 php artisan make:factory PostFactory --model=Models/Post #Schema 建立表 php artisan session:table #執行數據遷移 php artisan migrate #全部down,再次up,填充數據 php artisan migrate:refresh --seed #回滾最后一批遷移 php artisan migrate:rollback #回滾所有遷移,down方法 php artisan migrate:reset #刪除所有表 重建數據庫(破壞性,如果有自己手動錄入的表數據請不要執行此操作) php artisan migrate:fresh #刪除所有表 重建數據庫 并填充數據 php artisan migrate:fresh --seed #生成數據遷移文件 創建新聞表 php artisan make:migration create_news_table --create news #復雜表單驗證 建立類去處理 php artisan make:request StoreBlogPost #創建auth所需視圖和控制器 php artisan make:auth 命令來生成密鑰 php artisan key:generate數據填充
#創建填充類對象 php artisan make:seeder PostsTableSeeder 運行填充器 編寫好填充器類之后,需要通過 dump-autoload 命令重新生成 Composer 的自動加載器: composer dump-autoload 運行之后可以使用 Artisan 命令 db:seed 來填充數據庫。 默認情況下,db:seed 命令運行 DatabaseSeeder 類, 不過,你也可以使用 --class 選項來指定你想要運行的獨立的填充器類: php artisan db:seed php artisan db:seed --class=UsersTableSeeder 你還可以使用 migrate:refresh 命令來填充數據庫,該命令還可以回滾并重新運行所有遷移,這在需要完全重建數據庫時很有用: php artisan migrate:refresh --seed #填充中文數據 $faker = FakerFactory::create("zh_CN"); 或者修改配置config/app.php "faker_locale" => "zh_CN", Factory 只是生成了測試數據,但是插入還要 用模型和DB類去寫;數據庫操作
DB:: 外觀類操作數據庫 查詢構建器
where whereIn whereBetween orderBy first
https://laravelacademy.org/po...
https://laravelacademy.org/po...
https://laravelacademy.org/po...
Eloquent ORM 每個表對應一個類
模型有些默認規則,如果與規則不符,需要重新指定 如表名,主鍵名,時間戳,連接的庫,
注:由于 Eloquent 模型本質上就是查詢構建器,你可以在 Eloquent 查詢中使用查詢構建器的所有方法。
#生成模型文件,帶上 -m 可以創建數據遷移文件 php artisan make:model Flight -m 組塊結果集chunk 游標cursor 根據主鍵獲取記錄find $flight = AppFlight::find(1);//可以傳數組查多條 獲取單條記錄first $flight = AppFlight::where("active", 1)->first(); 如果無結果跑出異常findOrFail 和 firstOrFail fillable guarded 二選一 賦值權限設置
控制器 中間件
部署后#生成路由緩存, php artisan route:cache #清除路由緩存 php artisan route:clear問題:
安裝擴展 數據庫報錯
清除配置緩存試試 php artisan config:clear
SymfonyComponentConsoleExceptionRuntimeException: Too many arguments, expected arguments "command".
執行單元測試的時候報的錯,測試里寫了執行一個 artisan 命令,命令寫錯了. 復制的命令是中文字符
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30973.html
摘要:最適合入門的初級教程一為什么選擇曾經要跟白頭到老沒想到它升了個級就拋了錨把我等拋棄了痛定思痛重新審視了一遍框架是世界上最好的語言這個沒有疑問吧如果有那絕對是個異教徒這是要被拖出去燒死的信仰的問題神圣不可侵犯那最好的語言中最流行的框架是哪個呢 最適合入門的 Laravel 初級教程 (一) 為什么選擇 laravel 曾經要跟 thinkphp 白頭到老;沒想到它升了個級就拋了錨;把我等...
摘要:原文發表在我的個人網站系列入門教程四最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發表在我的個人網站:Laravel 5 系列入門教程(四)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:最適合入門的初級教程二看這篇文章的時候你需要安裝好配置好本地環境環境搞定后咱來說的下載這里先解決一些童鞋可能有的疑惑的版本更新的那么快從到現在的了我應該下載那個學習呢新出的版本的文檔資料豐富么作為一個過來人可以大膽的說學習最新版本沒問題除了 最適合入門的 Laravel 初級教程 (二) 看這篇文章的時候;你需要安裝好 composer ;配置好本地環境; 環境搞定后; 咱來說lara...
摘要:本系列思維導圖整理自版本官方文檔。思維導圖導出為圖片時會導致其變模糊。需要高清的思維導圖源文件,請關注微信公眾號,并回復精進腦圖來獲取。今天我們就通過張思維導圖來快速看入門指南。這些文章都將首發在微信公眾號上。 showImg(https://segmentfault.com/img/remote/1460000010774258); 本系列思維導圖整理自 Laravel 5.4 版...
摘要:原文發表在我的個人網站系列入門教程二最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發表在我的個人網站:Laravel 5 系列入門教程(二)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:的安裝與使用是什么是的一個依賴管理工具。它以項目為單位進行管理,你只需要聲明項目所依賴的代碼庫,會自動幫你安裝這些代碼庫。 Composer 的安裝與使用 Composer 是什么 Composer 是 PHP 的一個依賴管理工具。它以項目為單位進行管理,你只需要聲明項目所依賴的代碼庫,Composer 會自動幫你安裝這些代碼庫。 安裝 Composer Mac 下的安裝只需要在命令行...
閱讀 3138·2021-11-24 10:24
閱讀 2930·2021-11-11 16:54
閱讀 3066·2021-09-22 15:55
閱讀 2027·2019-08-30 15:44
閱讀 1901·2019-08-29 18:41
閱讀 2761·2019-08-29 13:43
閱讀 3053·2019-08-29 12:51
閱讀 1172·2019-08-26 12:19