摘要:不過除了使用加密,還可以使用原文鏈接使用來調試應用程序的數據以及使用一些總結參考資料參考資料使用來調試你的參考資料框架填充中文數據測試數據
使用Tinker來調試Laravel應用程序的數據以及使用Tinker一些總結
[toc]
今天我們將討論如何使用Laravel的一些鮮為人知的功能來快速讀取Laravel應用程序中的數據。我們可以使用Laravel的手工內置php artisan tinker工具來處理數據庫中的應用程序和事物。
Laravel artisan的tinker程序是一個 REPL (read-eval-print-loop)。repl翻譯為read-eval-print-loop(交互式命令行界面),它是一個交互式語言shell。它可以讓你輸入一段代碼去執行,并把執行結果直接打印到命令行界面里。
快速簡便的方式查看數據庫中的數據
輸入下面命令行,可以直接看到結果
// see the count of all users AppUser::count(); // find a specific user and see their attributes AppUser::where("username", "samuel")->first(); // find the relationships of a user $user = AppUser::with("posts")->first(); $user->posts;
使用php artisan tinker,我們可以很快做到這點。Tinker是Laravel自帶的repl,基于PsySH。它使我們能夠與我們的應用程序進行交互,dd()并die()停下來。我們中的很多人都知道當我們的代碼中存在print_r()和dd()時發生的痛苦。
在使用Tinker之前,我們先創建一個演示項目。我們稱之為ScotchTest。如果您的計算機上安裝了laravel安裝程序,請運行此命令。
laravel new ScotchTest
對于那些在他們的計算機上沒有Laravel安裝程序的人,可以使用composer來創建一個新的Laravel項目。
composer create-project laravel/laravel ScotchTest --prefer-dist 或者指定laravel版本 composer create-project laravel/laravel=5.3 ScotchTest --prefer-dist1. 數據庫設置:運行遷移
安裝我們的演示Laravel項目后,我們需要創建一個數據庫并設置遷移。對于本文我們將使用默認的Laravel遷移。因此我們將.env文件配置為指向您為此測試創建的數據庫。默認遷移包括創建一個users表和一個password_resets表。
php artisan migrate
遷移我們的數據庫后,我們應該看到類似的信息
默認情況下,Laravel提供了一個模型工廠model factory我們可以使用它來為我們的數據庫創建種子。
現在讓我們開始使用Tinker。
php artisan tinker
這條命令會打開一個 REPL 窗口供我們使用。剛才我們已經執行過 migration, 現在我們可以直接在 REPL 中使用模型工廠來填充數據。
factory(AppUser::class, 10)->create();
十個新用戶的集合應顯示在您的終端上。然后我們可以檢查數據庫以查看用戶是否真正創建。
AppUser::all();
為了讓我們的數據庫中的用戶總數,我們可以直接調用count的User模型。
AppUser::count();
在執行完 AppUser::all() 和 AppUser::count()
之后,我的輸出是這個樣子的,你們的輸出應該和我差不多,僅僅是生成的內容不同。
通過 REPL,我們還可以創建一個新用戶。你應該已經注意到,我們在 REPL 使用的命令跟我們在 laravel 中所寫的代碼是一樣的。所以創建一個新用戶的代碼:
$user = new AppUser; $user->name = "imax"; $user->email = "imax@gmail.com"; $user->password = bcrypt("12345"); $user->save();
現在輸入 $user,可以看到
要刪除 id 為 1 的用戶:
$user = AppUser::find(1); $user->delete();5. 查閱某個 類/方法 的注釋文檔
通過 tinker,你可以在 REPL 中查看某個 類/方法 的注釋文檔。但是文檔內容取決于這個 類/方法 是否有一個文檔注釋塊(DocBlocks)。
doc# replace with function name or class FQN
比如,查閱 dd 的注釋文檔
我們還可以在repl使用過程中檢查一個函數或類的源代碼
show
例如,調用show在dd此給我們。
Laravel Tinker是一款工具,可以幫助我們輕松地與我們的應用程序進行交互,而無需啟動本地服務器。想想你想從你的項目中刪除的幾行文字中測試一個簡單的功能,只需要使用php artisan tinker就可以了。
8. 遇到的一些問題和解決辦法 8.1 關于使用tinker使用中文報錯的問題如果你用的是Laravel的5.3的版本, 想要插入中文的測試數據,會發生如下的報錯信息
解決辦法
1.修改
~/www/laravel/vendor/fzaninotto/faker/src/Faker/Factory.php
的const DEFAULT_LOCALE = "en_US";
改為const DEFAULT_LOCALE = "zh_CN";
2.復制
~/www/laravel/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php
到zh_CN目錄下
3.并把對應的命名空間的名稱修改為namespace FakerProviderzh_CN;
4.我們重新執行php artisan tinker,用工廠模型創建10條數據看一下。
php artisan tinker
factory(AppUser::class, 10)->create();
再次驗證一下
$user = new AppUser(); $user->name = "大熊貓";8.2 關于windowscmd終端Tinker中文亂碼的問題
# 將終端改成UTF8字符 先輸入 CHCP 65001 然后打開【屬性】,將字體改為【Lucida Console】8.3 Tinker對于修改器仍然有效
// 在User模型設置修改器 public function setNameAttribute($value) { $this->attributes["name"] = strtolower($value); }8.4 Tinker為后臺添加管理員
一般后臺管理平臺,都是禁用掉注冊功能的。
那怎么添加一個管理員賬號呢。
參考步驟三其實就可以了。
不過除了使用bcrypt()加密,
還可以使用Hash::mark()
$user->password = Hash::make("serct");
原文鏈接 使用Tinker來調試Laravel應用程序的數據以及使用Tinker一些總結
參考資料[1] Tinker with the Data in Your Laravel Apps with Php Artisan Tinker
參考資料[2] 使用 Php Artisan Tinker 來調試你的 Laravel
參考資料[3] Laravel框架填充中文數據測試數據
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28345.html
摘要:本節將使用用戶創建博文來學習數據模型關聯的有關知識。我們發現為我們生成的時間是英文的,如果要使用中文時間,則需要對進行本地化設置。動態屬性讓你能夠訪問關聯函數,就像他們是在模型中定義的屬性會假設對應關聯的外鍵名稱是基于模型名稱的。 本節將使用用戶創建博文來學習數據模型關聯的有關知識。 一、Laravel常用知識總結 1.提示信息漢化 如果用Laravel原生的表單提示錯誤信息,則是英文...
摘要:本文參考超哥寫的基于的模塊化開發的詳細實踐版。包本地開發本地開發一個包做法基本與包開發一樣,簡單過一下吧。首先創建一個新的項目在項目中創建如下目錄為我們要發布的包,對應為,對應為項目名。 showImg(https://segmentfault.com/img/remote/1460000010891977); 本文參考超哥寫的 基于 Composer 的 PHP 模塊化開發 的詳細實...
摘要:不過它確實各方面都做了大量的優化,本文中的很多知識點也來源于阿里的熱修復技術原理一書,本書值得一讀,里面就是基于框架來編排的。 前言;本文框架什么是熱修復?熱修復框架分類技術原理及特點Tinker框架解析各框架對比圖總結通過閱讀本文,你會對熱修復技術有更深的認知,本文會列出各類框架的優缺點以及技術原理,文章末尾簡單描述一下Tinker的框架結構。 一、什么是熱修復?1.正常開發流程showI...
閱讀 3456·2021-09-08 09:36
閱讀 2533·2019-08-30 15:54
閱讀 2344·2019-08-30 15:54
閱讀 1760·2019-08-30 15:44
閱讀 2378·2019-08-26 14:04
閱讀 2437·2019-08-26 14:01
閱讀 2869·2019-08-26 13:58
閱讀 1315·2019-08-26 13:47