2016-08-16 5 views
-1

Оглядываясь на какое-то время, я не нашел то, что искал, поэтому иди.Laravel variable in og: tag

Есть ли способ установить og: теги facebook с переменной из вашей базы данных?

Я использую Laravel 5.2, и у меня есть app.blade с моим шаблоном html, где я вызываю @section('content'), чтобы показать каждую конкретную страницу.

В (главной страницы) app.blade У меня есть этот код

<meta property="og:url"   content="@yield('url')" /> 
<meta property="og:type"   content="@yield('type')" /> 
<meta property="og:title"   content="@yield('ogtitle')" /> 
<meta property="og:description" content="@yield('description')" /> 
<meta property="og:image"   content="@yield('image')" /> 

, который я предлагаю на каждой конкретной странице, как это:

@section('url', Request::fullUrl()) 
@section('image', 'http://www.myurl.eu/img/share.jpg') 
@section('type', 'article') 
@section('ogtitle', 'Title | Careers') 
@section('description', 'My personal website title') 

Теперь у меня есть раздел в моем веб-сайте myurl.eu/careers, где у меня есть несколько страниц подробностей для каждой открытой позиции работы. Теперь я хотел бы установить og:title и og:description переменной из моей базы данных.

Попытка этого (ниже) ничего не принесла (так что обмен пустым) после отладки и скребки facebook tool несколько раз.

@section('description', $job->description) 

или

@section('description', {{$job->description}}) 

Благодаря

ответ

1

Сначала вы должны разделить данные, связанные с представлениями, если вы хотите иметь мета-теги во всех видах, то сделать что-то вроде этого:

<html prefix="og: http://ogp.me/ns#"> 
<head> 
<title>The Tittle </title> 

<meta property="og:title" content="{{ $data->title}}" /> 
<meta property="og:type" content="article" /> 
<meta property="og:description" content="{{ $data->description}}" /> 
<meta property="og:url" content="{{ $data->page_url}}" /> 
<meta property="og:image" content="{{ $data->imag_url}}" /> 
... 
</head> 
+0

Если я использую этот подход, я должен установить данные в моем MasterPage и определить его один раз .. Я хочу быть различными для каждой страницы (который работает), но теперь мне нужно он заполняется данными из базы данных (не работает). – nclsvh

+0

Поделитесь своими данными с представлениями, которые поступают из базы данных. – Rastagar

+0

Как бы вы делили разные данные для каждого представления на 1 главную страницу? Как вы определяете $ data и где? – nclsvh

0

Я делаю что-то вроде этого. (Конкретные данные по всем представлениям)

public function boot() 
    { 
//  $notifyDate = $date->addDays(-3); 
    view()->composer('partials.header', function($view) 
    { 
     $date = Carbon::now(); 
     $notifyDate = $date->addDays(3); 
     $view->with('notify', DB::table('purchases') 
      ->join('stock_item', 'stock_item.stm_id','=','purchases.item_id') 
      ->join('brands', 'brands.bid','=','purchases.brand_id') 
      ->join('categories', 'categories.cat_id','=','purchases.category_id') 
      ->select('purchases.*','stock_item.item_name','brands.brand_name','categories.category_name') 
      ->where('purchases.expire_date', '<=', $notifyDate) 
      ->where('check_exp', 0)->get()); 
    }); 

}