Blade テンプレート ページでは、@section コマンドを使用してコンテンツ ブロックを定義したり、@yield コマンドを使用して指定したブロックのコンテンツを表示したりすることがよくあります。後で説明します。カスタマイズされた Blade コマンドの作成方法。
welcome.blade.php ページを変更します:
<!DOCTYPEhtml><html> <head> <title>Laravel</title> </head> <body> @hello </body></html>
AppServiceProvider.php を変更し、カスタム hello コマンドを追加します:
class AppServiceProvider extends ServiceProvider{ /** * Bootstrap any application services. * * @return void */ public function boot() { // 新增 hello blade Blade::directive('hello', function(){ return 'hello word'; }); } /** * Register any application services. * * @return void */ public function register() { // }}
最初のページへの訪問の効果は次のとおりです。
AppServiceProvider.php のコードを次のように変更します:
public function boot() { // 新增 hello blade Blade::directive('hello', function(){// return 'hello word1'; return '<?= "hello universe"; ?>'; }); }
アクセス結果は変わりません。これは Laravel のページ キャッシュのせいです。 phpArtisan view:clear を実行してキャッシュをクリアし、再度アクセスすると、効果は次のようになります:
welcome.blade.php ページを変更します:
<!DOCTYPEhtml><html> <head> <title>Laravel</title> </head> <body> @hello('world') </body></html>
AppServiceProvider のブート メソッドを変更します。 php は、受信 $ 式パラメータを受け入れます:
public function boot() { // 新增 hello blade Blade::directive('hello', function($expression){ return "<?= 'hello '. $expression; ?>"; }); }
この時点で、ホームページへのアクセスの影響は次のとおりです:
実際のアクセス パスは次のとおりです: /storage/framework/ の下のキャッシュ ファイルビュー/。
Route.php ページを変更してユーザー変数を渡します:
Route::get('/', function(){ return view('welcome')->with('user', App\User::first());});
$user を受け入れるように welcome.blade.php ページを変更します:
<!DOCTYPEhtml><html> <head> <title>Laravel</title> </head> <body> @ago($user) </body></html>
$ を処理するように AppServiceProvider.php を変更します。ユーザー:
public function boot() { // 新增 hello blade Blade::directive('ago', function($expression){ dd($expression); }); }
現時点で、ホームページへのアクセスの効果は次のとおりです:
オブジェクトを正常に表示する方法。ここでは補助機能を使用します。 :
public function boot() { // 新增 hello blade Blade::directive('ago', function($expression){ return "<?= with{$expression}->updated_at->diffForHumans(); ?>"; }); }
アクセス効果は次のとおりです: