Метод 1: использование параметров маршрута
Route::get('/posts/{id}', 'PostController@show');
В вашем PostController
public function show($id)
{
$post = Post::find($id);
// Set the dynamic title and description
$title = $post->title;
$description = $post->description;
return view('post.show', compact('post', 'title', 'description'));
}
Метод 2: использование составителей представлений
class PostComposer
{
public function compose(View $view)
{
$post = Post::find($view->getData()['post_id']);
$view->with('title', $post->title);
$view->with('description', $post->description);
}
}
// In a service provider
public function boot()
{
View::composer('post.show', PostComposer::class);
}
Метод 3. Использование директив Blade
// In your AppServiceProvider
public function boot()
{
Blade::directive('title', function ($expression) {
return "<?php \$title = $expression; ?>";
});
Blade::directive('description', function ($expression) {
return "<?php \$description = $expression; ?>";
});
}
В файле представления вы можете использовать такие директивы:
@title($post->title)
@description($post->description)
Метод 4: использование промежуточного программного обеспечения
public function handle($request, Closure $next)
{
$response = $next($request);
if ($request->route()->getName() === 'post.show') {
$post = Post::find($request->route('id'));
$response->header('X-Title', $post->title);
$response->header('X-Description', $post->description);
}
return $response;
}
Извлекая заголовок и описание из промежуточного программного обеспечения, вы можете легко получить к ним доступ в заголовочном разделе HTML и установить соответствующие метатеги.
Подведение итогов
В этой статье мы рассмотрели несколько способов добавить динамичности заголовку и описанию вашего веб-сайта Laravel. Используя параметры маршрута, композиторы представлений, директивы Blade или промежуточное программное обеспечение, вы можете легко создавать динамические теги заголовка и описания, улучшая SEO вашего веб-сайта. Поэкспериментируйте с этими методами и найдите тот, который лучше всего соответствует вашим потребностям. Приятного кодирования!