2015-02-10 4 views
2

Я некоторые функции, которые мне нужно позвонить на мой взгляд (comment.bade.php) и вернуть $ ID, это функция:Функции с Laravel 5

function tree($id) { 
      $childs = DB::table('replays')->where('order', $id)->first(); 
      return view('comment', compact('childs')); 
    } 

Я не знаю, правильный путь к сделать это в Laravel 5, может кто-нибудь помочь мне, где поставить функцию и как ее называть в мой comment.blade.php?

ответ

2

Это, как добавлять пользовательские функции, или «помощники» в Laravel 5.

Сначала мы должны хранить наши помощники где-нибудь. В моем примере я создаю файл с именем helpers.php в каталоге app в чистой установке Laravel 5. В этом файл у меня есть следующий код:

<?php 

if (! function_exists('tree')) 
{ 
    function tree($id) 
    { 
     // `app` is a built-in L5 helper function 
     // it returns our applications container instance 
     return app('db')->table('replays')->where('order', '=', $id)->first(); 
    } 
} 

Следующие ваше приложению нужно будет загрузить эти функции. Я собираюсь использовать composer, чтобы загрузить их. В корневой папке Laravel 5 установки вы увидите файл с именем composer.json открытым, что и вы увидите autoload раздел, изменить что выглядеть примерно так:

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "files": [ 
     "app/helpers.php" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

Наконец вам нужно обновить автозагрузчик композитора, поэтому с вашего CLI вам нужно будет ввести: composer dumpautoload.

Теперь вы можете вызвать функцию из любой точки вашего приложения Laravel.

+0

Спасибо за ответ, но по какой-то причине он не вернет результаты базы данных ... – Vladimir

0

Лучше всего сделать любой код bd для конкретной службы только для получения значений db из этой таблицы и инициализировать любую переменную, которую вы будете использовать в представлении метода контроллера.

+0

Спасибо за ответ, не могли бы вы показать мне пример? – Vladimir

+0

класс КомментарийController extends Controller { public function comment ($ id) { $ childs = DB :: table ('replays') -> где ('order', $ id) -> first(); return view ('comment', compact ('childs')); } } Вы можете сделать это на контроллере. Но я рекомендую вам лучше перевести этот код на службу собственного – Raulucco

+0

. Этот код уже находится в контроллере, но не знает, как вызвать эту функцию из моего клинка: comment.bade.php, поэтому я могу вернуть значение $ id. ... – Vladimir