Маршрут Laravel: любой слизняк берет все запросыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Маршрут Laravel: любой слизняк берет все запросы

Сообщение Anonymous »

У меня есть маршрут что -то вроде этого. $ Slug < /code> является переменной, которая соответствует слизнякам, хранящимся в базе данных, для динамического добавления страниц на веб -сайт. < /P>

Код: Выделить всё

#slug variable for different values of page slug....
Route::get('/{slug?}', array(
'as' => 'page',
'uses' => 'AbcController@renderPage'
));
< /code>

Однако теперь я хочу добавить административную сторону веб-сайта и хочу, чтобы маршруты были предварительно профиксированы с помощью Media-Manager < /code>. < /p>

 Моя проблема заключается в том, что всякий раз, когда я звоню в другой маршрут в файле, вышеупомянутый маршрут принимает вызов запроса и вызывает renderpage < /code> Метод каждый раз, независимо от того, куда бы ни поступал запрос. -Manager/*'
, Если это так, я не хочу проверять язык веб-сайта и перенаправить его на страницу медиа-менеджера. < /p>

private $openRoute = ['media-manager/login', 'media-manager/postLogin', 'media-manager/media'];

public function handle($request, Closure $next)
{

foreach ($this->openRoute as $route) {
if ($request->is($route)) {
return $next($request);
}
}

// Make sure current locale exists.
$lang = $request->segment(1);
if(!isValidLang($lang)) {
$lang = getDefaultLang();
$segments = $request->segments();
array_unshift($segments, $lang);

$newUrl = implode('/', $segments);
if (array_key_exists('QUERY_STRING', $_SERVER))
$newUrl .= '?'.$_SERVER['QUERY_STRING'];

return $this->redirector->to($newUrl);
}
setLang($lang);
return $next($request);
}
< /code>

Это метод renderpage, где каждый раз, когда запрос перенаправляется, несмотря ни на что. < /p>

public function renderPage($slug = '')
{

if ($slug == 'login') {
return view ('site.login');
}

$page = Page::getBySlug($slug);
if(empty($page)){
return URL::to ('/');
}

if($slug == ''){//home page
$testimonial = DB::table('testimonial')->where('lang','=',$this->lang)->get();
$client_logo = DB::table('client_logo')->get();
return View::make('index', compact('data','page', 'testimonial', 'client_logo'));

}elseif($slug == 'services'){
return View::make('services', compact('page'));

}elseif($slug == 'portfolio'){
$categories = PortfolioCategory::getAll();
$portfolio = Portfolio::getAll();
return View::make('portfolio', compact('page', 'categories', 'portfolio'));

}elseif($slug == 'oshara'){
return View::make('oshara', compact('page'));

}elseif($slug == 'blog'){
$limit = 8;
$pageNum = 1;

$offset = ($pageNum-1)*$limit;
$totalPosts = BlogPost::totalPosts();
$totalPages = ceil($totalPosts/$limit);
$posts = BlogPost::getAll($offset, $limit);
$blog_posts = View::make('partials.blog_posts', compact('posts','pageNum','totalPages'));
return View::make('blog', compact('page', 'blog_posts', 'pageNum', 'totalPages'));

}elseif($slug == 'contact'){
$budgets = Budget::getAll();
return View::make('contact', compact('page', 'budgets'));
}
}
< /code>

Это метод постлогина в контроллере, который я хочу позвонить после того, как пользователь нажимает на кнопку «Вход» на странице входа в систему. < /p>

public function postLogin($request) {
# code...
//$request = $this->request;
$this->validate($request, [
'email1' => 'required|email',
'password' => 'required|string'
]);
if($user = User::whereEmail($request->email1)->first() ) {
if(Hash::check($request['password'], $user->getAttributes()['password'])) {

if(!$user->getAttributes()['is_active']) {
return redirect('/media-manager/login')->withErrors('Your Account is not Activated Yet!');
} else if($user->getAttributes()['is_deleted']) {
return redirect('/media-manager/login')->withErrors('Your Account is Banned!');
} else {
# Success
$cookie = Cookie::make('user_id', $user->getAttributes()['id'], 864000);
//echo "hello";
return view('site.media')->with('message', 'You have Successfully Logged In!')->withCookie($cookie);
}
} else {
return redirect('/media-manager/login')->withErrors('Your Login Information is Wrong!');
}
} else {
return redirect('/media-manager/login')->withErrors('Your Login Information is Wrong!');
}
}
< /code>

может кто -нибудь, пожалуйста, предложите мне какой -нибудь путь, чтобы я мог отключить метод renderpage на каждом вызове и выполнить свою обычную маршрутизацию отлично. < /p>

Подробнее здесь: https://stackoverflow.com/questions/426 ... e-requests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»