Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Проблема у меня глупая - Class Front\VideoController does not exist
В роутах: Route::get('channel', 'Front\VideoController@index');
Контроллер:
namespace Front;
use Illuminate\Support\Facades\View;
class VideoController extends \BaseController {
public function index() {
return View::make('frontend.channel');
}
}
Вроде же все правильно... в чем может быть проблема?
composer dump-autoload - не помогает
Так ничего толком и не получилось, поэтому решила ограничиться максимум тремя категориями. Если кому вдруг будет нужно, вот что получилось:
$num_categories = count($filter['selected_category']);
$query = DB::table('articles');
switch ($num_categories) {
case 1:
$query->join('article_category as ac', 'articles.id', '=', 'ac.article_id')
->where('ac.category_id', '=', $filter['selected_category']);
break;
case 2:
$query->join('article_category as ac1', 'articles.id', '=', 'ac1.article_id')
->join('article_category as ac2', 'ac1.article_id', '=', 'ac2.article_id')
->where('ac1.category_id', '=', $filter['selected_category'][0])
->where('ac2.category_id', '=', $filter['selected_category'][1]);
break;
case 3:
$query->join('article_category as ac1', 'articles.id', '=', 'ac1.article_id')
->join('article_category as ac2', 'ac1.article_id', '=', 'ac2.article_id')
->join('article_category as ac3', 'ac2.article_id', '=', 'ac3.article_id')
->where('ac1.category_id', '=', $filter['selected_category'][0])
->where('ac2.category_id', '=', $filter['selected_category'][1])
->where('ac3.category_id', '=', $filter['selected_category'][2]);
break;
default:
break;
}
$data['articles'] = $query->get();
Есть таблица статей, категорий и связующая таблица. Отношение ManyToMany.
Нужно получить статьи, которые одновременно находятся в указанных категориях (id категорий получаем массивом из формы).
На sql получилось так:
SELECT * FROM `articles` as a
JOIN `article_category` as p1
JOIN `article_category` as p2
on (p1.article_id=p2.article_id and p1.category_id=16 and p2.category_id=51)
where a.id=p1.article_id
Как это теперь переписать на query builder, учитывая, что в исходном массиве категорий может быть больше?
Или может есть лучший способ организовать подобный запрос?
Спасибо, отладчик помог
При попытке авторизации появляется сообщение "Whoops, looks like something went wrong". Статус страницы 500 internal server error.
Контроллер:
<?php namespace Admin;
class AdminController extends \BaseController {
public function index() {
$data = Input::all();
if (Auth::attempt([ 'email' => $data['email'], 'password' => $data['password'] ], true)) {
if (Auth::usermodel()->user_group == 1) {
return View::make('backend.index');
} else {
return Redirect::to(URL::previous());
}
} else {
return "error";
}
}
}
Роуты:
Route::group([ 'prefix' => 'admin' ], function() {
Route::get('/', function() {
return View::make('backend.login');
});
Route::post('/index', 'Admin\AdminController@index');
Route::get('/index', function() {
if (Auth::check()) {
return View::make('backend.index');
} else {
return Redirect::to('/admin');
}
});
});
Папка backend с контроллером добавлена в composer.json
Уже несколько часов бьюсь над проблемой, ничего не получается