【问题标题】:Laravel | Get specified data for current page拉拉维尔 |获取当前页面的指定数据
【发布时间】:2020-02-23 12:19:58
【问题描述】:

我正在尝试获取每个页面的元数据 每个页面都有一个独特的 slug

appServiceProvider 我有:

$view->with('seopage', Page::all());

在刀片视图(节头)中,我有:

<title>
  @foreach($seopage as $sm)
    {{ $sm->main_title }}
  @endforeach
</title>
<meta name="description" content="
  @if(Request::is('/*'))                             
  @foreach($seopage as $sp)
  {{ $sp->site_description }}
  @endforeach
  @endif
">

但目前我正在接受all titlesdescriptions。如何获取指定页面的数据?

页面模型有unique SLUG variable。谢谢

【问题讨论】:

  • have unique slug variable 是什么意思?你能发布你的Page 模型吗?
  • 您将所有页面信息发送到每个刀片。这就是你获得所有头衔的原因。如果你想过滤它,你必须在 appServiceProvider 上进行。

标签: laravel eloquent laravel-blade


【解决方案1】:

appServiceProvider你可以分享属于指定页面的页面:

$page = Page::where('slug', Request::path())->first();
View::share('seopage', $page);

并且在视图中您可以检索共享变量:

<meta name="description" content="
  @if(Request::is('/*') && isset($seopage))
  {{ $seopage->site_description }}
  @endif
">

【讨论】:

    【解决方案2】:

    您必须在 seopage 表中具有唯一的 uri 列

    你必须使用

    use Illuminate\Support\Facades\Route;
    
    .....
    
    $uri = \Route::current()->uri;
    $seopage =  Page::where('uri', $uri)->first();
    
    if ($seopage) {
        $seo = sprintf(
            '<title>%s</title>'  . PHP_EOL
            . '<meta name="description" content="%s>',
            $seopage->main_title ,
            $seopage->site_description
        );
    } else {
        $seo = '';
    }
    $view->with('seo', $seo);
    

    在刀片使用中

    {{ $seo }}
    

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2019-02-21
      • 2020-09-02
      • 1970-01-01
      • 2017-08-10
      • 2023-04-10
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      相关资源
      最近更新 更多