- Published on
laravelでページごとにtitleとdescriptionを簡単に変える
目次
seoを考えるとtitleとdescriptionは変えないとねーってことで
今回は検索ワードで簡単に変更する方法です。
そういえば気にしてなかったって人はぜひこの機会に。
変更するのはviewのbladeとControlloerです。
まずControlloerから。
public function index(Request $request)
{
if(!empty($keyword))
{
$query = Post::query();
$result = $query->Where('text','like','%'.$keyword.'%')->orderBy('created','desc')->simplePaginate(20);
return View('posts.index', [
//viewにキーワードを渡す
'result' => $result,'keyword'=> $keyword
]);
}else{
//$keywordが空の場合
$result = Post::orderBy('created','desc')->simplePaginate(20);
return View('posts.index', [
'result' => $result
]);
}
}
ブレードの共通部分。
layouts/default.blade.php
//ヘッダー部分
<title>@yield('title','タイトル - サイト名')</title>
<meta name="description" itemprop="description" content="@yield('description','サイト説明')">
hoge/index.blade.php
@extends('layouts.default')
//keyword入っているかい?
@if (isset($keyword))
@section('title', $keyword.'の検索結果 - サイト名')
@section('description', $keyword.'の検索結果です。サイト説明' )
@endif
keywordの中身が反映されます。
以上です。
titleとdescriptionに動的に入れたいキーワードをcontrollerからviewに渡せばいいって考えればいいかと思います。
ではでは。