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