


Explication détaillée du moteur de modèle Blade dans Laravel
Le moteur de modèles de Laravel utilise le moteur de modèles Blade. L'article suivant vous présente principalement les informations pertinentes sur le moteur de modèles Blade dans Laravel. L'article le présente en détail à travers un exemple de code, ce qui est d'une certaine importance pour l'étude ou l'étude de chacun. travail En référence à la valeur d'apprentissage, les amis qui en ont besoin peuvent suivre l'éditeur pour apprendre ensemble.
Avant-propos
Cet article vous présente principalement le contenu pertinent sur le moteur de modèles Blade dans Laravel, et le partage pour votre référence et votre étude . Assez dit, jetons un œil à l’introduction détaillée.
Moteur de modèles Blade
Blade est un moteur de modèles simple et puissant fourni par Laravel. Il compile la vue Blade en PHP natif. codez-le et mettez-le en cache. Le cache change lorsque la vue Blade change, ce qui signifie que Blade n'ajoute aucune charge de compilation à votre application. Les fichiers de vue Blade utilisent le suffixe .blade.php et sont généralement stockés dans le répertoire resources/views.
Héritage de modèles
Regardons d'abord un exemple
<!-- Stored in resources/views/layouts/master.blade.php--> <html> <head> <title>App Name - @yield('title')</title> </head> <body> @section('sidebar') This is the master sidebar. @show <p class="container"> @yield('content') </p> </body> </html>
Les fichiers de modèles Blade contiennent un balisage HTML typique. Vous devez avoir vu les directives @section et @yield. La directive @section définit une section de contenu comme son nom l'indique, tandis que la directive @yield est utilisée pour afficher le contenu contenu dans la section widget fournie. Maintenant que nous avons défini une disposition de base, nous pouvons utiliser la directive @extends de Blade pour hériter explicitement de cette disposition. Utilisez ensuite la directive @section pour monter le contenu du widget dans la mise en page. Dans l'exemple ci-dessus, le contenu du widget sera monté dans la section @yield de la mise en page :
<🎜. >
<!-- Stored in resoures/views/child.blade.php --> @extends('layouts.master') @section('title', 'Page Title') @section('sidebar') @parent <p>This is appended to the master sidebar.</p> @endsection @section('content') <p>This is my body content.</p> @endsection
Route::get('blade', function () { return view('child'); });
Afficher les données
<🎜. >
Route::get('greeting', function () { return view('welcome', ['name' => 'Duicode']); })
Hello, {{ $name }}
The current UNIX timestamp is {{ time() }}
Hello, @{{ name }}
{{ isset($name) ? $name : 'Default' }}
{{ $name or 'Default' }}
Hello, {!! $name !!}
Structure de contrôle
Vous pouvez utiliser la structure de contrôle if via les directives @if, @elseif, @else et @endif :
@if (count($records) === 1) I have one record! @elseif (count($records) > 1) I have multiple records! @else I don't have any records! @endif
@unless (Auth::check()) You are not signed in. @endunless
<title> @hasSection('title') @yield('title') - App Name @else App Name @endif </title>
@for ($i = 0; $i < 10; $i++) The current value is {{ $i }} @endfor @foreach ($users as $user) <p>This is user {{ $user->id }}</p> @endforeach @forelse ($users as $user) <li>{{ $user->name }}</li> @empty <p>No users</p> @endforelse @while (true) <p>I'm looping forever.</p> @endwhile
@foreach ($users as $user) @if($user->type == 1) @continue @endif <li>{{ $user->name }}</li> @if($user->number == 5) @break @endif @endforeach
@foreach ($users as $user) @continue($user->type == 1) <li>{{ $user->name }}</li> @break($user->number == 5) @endforeach
Y compris les sous-vues
Vous pouvez utiliser la directive @include Pour contenir le contenu d'une vue, les variables de la vue actuelle seront également partagées avec la sous-vue :
<p> @include('shared.errors') <form> <!-- Form Contents --> </form> </p>
@include('view.name', ['some' => 'data'])
@each('view.name', $jobs, 'job')
Le deuxième paramètre est un tableau ou une collection utilisée pour fournir une itération.
第三个参数是要分配给当前视图的变量名。
你也可以传递第四个参数到 @each 指令。如果所提供的数组是空数组的话,该参数所提供的视图将会被引入。
@each('view.name', $jobs, 'job', 'view.empty')
Blade 中的注释,这样写不会被渲染:
{{-- This comment will not be present in the rendered HTML --}}
Blade 允许你在已命名的堆中压入内容:
@push('scripts') <script src="/example.js"></script> @endpush
你可以在你需要的时候压入相同的堆任意的次数,你需要在布局中使用 @stack 来渲染堆:
<head> <!-- Head Contents --> @stack('scripts') </head>
可以使用 @inject 指令来从服务容器中取回服务:
@inject('metrics', 'App\Services\MetricsService') <p> Monthly Revenue: {{ $metrice->monthlyRevenue() }} </p>
第一个参数将作为所取回服务存放的变量名,
第二个参数是你想要在服务容器中取回的类或接口名称。
可以使用 directvie 方法来注册指令。当 Blade 编译器遇到该指令时,它会自动的调用该指令注册时提供的回调函数并传递它的参数。
下面的例子创建了 @datetime($val) 指令来格式化 $val:
<?php namespace App\Providers; use Blade; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider{ /** * Perform post-registration booting of services. * * @return void */ public function boot(){ Blade::directive('datetime', function ($expression) { return "<?php echo with{$express}->format('m/d/Y H:i'); ?>"; }); } /** * Register bindings in the container * * @return void */ public function register() { // } }
上面的例子中使用了 Laravel 的 with 帮助方法,它只是简单的返回一个所提供的对象或值,并提供方便的链式调用。最终该指令生成的 PHP 代码如下:
<?php echo with($var)->format('m/d/Y H:i'); ?>
在你更新 Blade 指令的逻辑之后,你应该删除所有已缓存的 Blade 视图,你可以使用 view:clear Artisan 命令来清除。
总结
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Laravel - Artisan Commands - Laravel 5.7 est livré avec une nouvelle façon de traiter et de tester de nouvelles commandes. Il inclut une nouvelle fonctionnalité de test des commandes artisanales et la démonstration est mentionnée ci-dessous ?

Laravel - Artisan Console - Le framework Laravel fournit trois outils principaux d'interaction via la ligne de commande, à savoir : Artisan, Ticker et REPL. Ce chapitre explique en détail Artisan.

Laravel - Personnalisations de pagination - Laravel inclut une fonctionnalité de pagination qui aide un utilisateur ou un développeur à inclure une fonctionnalité de pagination. Le paginateur Laravel est intégré au générateur de requêtes et à Eloquent ORM. La méthode paginate automatique

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.
