この記事は次から翻訳されています: Tinker with the Data in Your Laravel Apps with Php Artisan Tinker
今日は、Laravel データのあまり知られていない機能を導入して、データベースをすばやくデバッグする方法を説明します。で。 Laravel 職人の組み込み php 職人ティンカーを使用すると、データベース内のデータを簡単に確認し、さまざまな必要な操作を実行できます。
Laravel 職人のいじくり回しは REPL (read-eval-print-loop) であり、これを使用すると、コードを入力して実行し、実行結果をコマンド ライン インターフェイスに直接出力できます。
最良の方法は、次の使い慣れたコマンドを入力して、すぐに結果を確認することだと思います:
// see the count of all usersApp\User::count();// find a specific user and see their attributesApp\User::where('username', 'samuel')->first();// find the relationships of a user$user = App\User::with('posts')->first();$user->posts;
phpArtisan tinker を使用すると、これを実際に簡単に行うことができます。 Tinker は、PsySH 上に構築された Laravel 独自の REPL です。これにより、dd() と die() を常に使用する必要がなく、アプリケーションとの通信がより簡単になります。私たちのほとんどは、コードをデバッグするために常に print_r() と dd() を使用することの苦痛に共感できると思います。
tinker を使用する前に、まずテスト プロジェクトを作成しましょう。それを ScotchTest と呼びます。 laravel インストーラーが既にコンピューターにインストールされている場合は、最初に次のコマンドを実行します:
laravel new ScotchTest
コンピューターに Laravel インストーラーがインストールされていない場合は、composer を通じてこのプロジェクトを作成できます
composer create-project laravel/laravel ScotchTest --prefer-dist
テスト プロジェクトの作成後(ScotchTest)、新しいテスト データベースを作成し、データベースの移行を実行してデータベースを初期化する必要もあります。この記事の説明では、Laravel のデフォルトの移行を直接使用するだけで十分です。まず、.env ファイルでデータベース接続情報を構成し、次に移行を実行する準備をします。デフォルトの移行は、users テーブルとpassword_resets テーブルの生成に役立ちます。
そうですか移行が完了すると、次のような情報が表示されるはずです:
通常、Laravel のモデル ファクトリを使用してデータベースを素早く埋めることができ、データベースに偽のデータを挿入するのに役立ちます。私たちのテストのために。それでは、ティンカーを使ってみましょう。
php artisan migrate
このコマンドにより、使用する REPL ウィンドウが開きます。移行を実行したばかりなので、REPL でモデル ファクトリを直接使用してデータを設定できるようになりました。
php artisan tinker
この時点で、10 件の新しいユーザー レコードのコレクションが端末に印刷されます。ここで、これらのレコードが実際に作成されたかどうかを確認できます。
factory(App\User::class, 10)->create();
count メソッドを使用すると、データベース内に User モデルに含まれるユーザーの数を確認することもできます。
App\User::all();
AppUser::all() と AppUser::count() を実行すると、出力は次のようになります。生成されたコンテンツのみが異なります。
REPL を使用して、新しいユーザーを作成することもできます。 REPL で使用するコマンドは、laravel で記述するコードと同じであることに気づいたはずです。新しいユーザーを作成するコード:
App\User::count();
$user と入力すると、
ID 1 のユーザーを削除するには:
$user = new App\User;$user->name = "Wruce Bayne";$user->email = "iambatman@savegotham.com";$user->save();
tinker を通じて、REPL のクラス/メソッドのアノテーション ドキュメントを表示できます。ただし、ドキュメントの内容は、このクラス/メソッドにドキュメント コメント ブロック (DocBlocks) があるかどうかによって異なります。
$user = App\User::find(1);$user->delete();
例えば、dd のアノテーションドキュメントを確認してください
特定のクラス/メソッドのソースコードを REPL で直接出力することもできます
doc <functionName> # replace <functionName> with function name or class FQN
例えば、ソースコードを確認してくださいLaravel Tinker は、laravel のデバッグを簡単にするツールです。これを使用すると、簡単なデバッグのためにローカル サービス (サーバー) を開く必要がありません。特に小さなコードをテストしたい場合、さまざまな var_dump や die を挿入したり、デバッグ後に削除したりする必要はなくなり、必要なのは phpArtisan tinker だけです。
元のアドレス: https://yii.im/post/tinker-with-the-data-in-your-laravel-apps-with-php-artisan-tinker/