Предварительная информация: Laravel 5 - это моя первая структура, которую я использовал помимо нашей пользовательской структуры, которую мы создали за эти годы. Я все еще обнимаю концепты, но в основном это все. У меня есть страничные вызовы, проверки авторизации, подача формы и запросы db.Laravel 5 Вызов класса в контроллере
Вопрос: В прошлом я бы создать новый класс «Access», и я бы вызвать функцию желательно там, где я должен был бы:
$access = Access::getAccessByAccount($accountID);
моя надежда сделать то же самое в Laravel так или иначе, и иметь возможность вызвать эту публичную функцию из контроллера. Я просто не знаю, как назвать это и где фактически хранить функцию.
Вот пример функции Я хотел бы назвать:
public function getAccessByAccount($accountID){
//Grab all access rights set to given account ID
$accessList = DB::table('element_access')
->join('element', 'element.id', '=', 'element_access.element_id')
->select('element.name as element', 'element_access.permission as permission')
->where('element_access.account_id', $accountID)
->get();
//Return $access[element] = permission list or false if no access rights are assigned to account ID
if(is_array($accessList)){
$access = array();
foreach($accessList as $item){
$access[$item->element] = $item->permission;
}
return $access;
}else{
return false;
}
}
Вот как я хотел бы, чтобы каким-то образом быть в состоянии назвать его в контроллере:
<?php namespace App\Http\Controllers\Portal\Admin;
use App\Http\Controllers\Controller;
class AdminController extends Controller {
public function showAdminDashboard(){
$access = Access::getAccessByAccount(Auth::id());
if($access['admin-dashboard'] == 'r'){
return view('portal.admin.dashboard');
}
}
}
EDITS:
Вот решение, с которым я пришел с помощью проверенного решения.
создал новый файл: приложение \ Library \ access.php
<?php namespace App\Library;
use DB;
class Access{
public function getElementAccessByAccount($accountID){
//Grab all access rights set to given account ID
return DB::table('element_access')
->join('element', 'element.id', '=', 'element_access.element_id')
->select('element.name as element', 'element_access.permission as permission')
->where('element_access.account_id', $accountID)
->get();
}
}
Для вызова функции:
$access = new \App\Library\Access;
$accessList = $access->getElementAccessByAccount(Auth::id());
Ваш ответ помог мне решить мою проблему. Я отредактирую свой вопрос, чтобы отразить решение, которое я придумал. – Dom