Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4:重定向:总是重定向到同一个不需要的路由_Php_Laravel 4_Laravel Routing - Fatal编程技术网

Php Laravel 4:重定向:总是重定向到同一个不需要的路由

Php Laravel 4:重定向:总是重定向到同一个不需要的路由,php,laravel-4,laravel-routing,Php,Laravel 4,Laravel Routing,由于某些原因,我无法理解,当我在登录后使用Redirect::designed()方法时,我总是被发送到路由文件的fourniseurs/ax_getListProduitsURL,无论我真正想要的URL是什么,只有两个例外: 如果我删除postfourniseurs/ax\u getListProduits路径,一切都正常 如果我添加一个echoSession::get('url.designed')call将显示正确的预期URL,并且它可以工作(但是如果我在Auth::trunt之后添加此

由于某些原因,我无法理解,当我在登录后使用
Redirect::designed()
方法时,我总是被发送到路由文件的
fourniseurs/ax_getListProduits
URL,无论我真正想要的URL是什么,只有两个例外:

  • 如果我删除post
    fourniseurs/ax\u getListProduits
    路径,一切都正常
  • 如果我添加一个echo
    Session::get('url.designed')call将显示正确的预期URL,并且它可以工作(但是如果我在
    Auth::trunt
    之后添加此代码,我将被发送到
    fourniseurs/ax\u getListProduits
我不明白发生了什么…我在这里或Laravel Github存储库中找不到任何类似的问题,这让我觉得我做错了什么,但我找不到它…我在Github上发布了这个问题,作为一个可能的bug,但没有成功,在这里:

以下是我的路由文件和我的登录控制器代码:

routes.php

Route::group(array('before' => 'auth'), function() {
  Route::get('/', array("as"=>"home", function() {
    return Redirect::to("fournisseurs");
  }));
  Route::resource('usergroups', 'UsergroupsController');
  Route::get('fournisseurs/ax_produits', 'FournisseursController@ax_produits');
  Route::post('fournisseurs/ax_getProduit', 'FournisseursController@ax_getProduit');
  Route::post('fournisseurs/ax_updProduit', 'FournisseursController@ax_updProduit');
  Route::post('fournisseurs/ax_getListProduits', 'FournisseursController@ax_getListProduits');
  Route::resource('fournisseurs', 'FournisseursController');

  Route::resource('adresses', 'AdressesController', array('only' => array('store', 'destroy', 'edit', 'update')));
  Route::get('/adresses/create/{frs_id}', array('as'=>'adresses.create', 'uses'=>'AdressesController@create'));

  Route::resource('contacts', 'ContactsController', array('only' => array('store', 'destroy', 'edit', 'update')));
  Route::get('/contacts/create/{frs_id}', array('as'=>'contacts.create', 'uses'=>'ContactsController@create'));
});

Route::get('login', array('as' => 'login', 'uses' => 'SessionsController@create'));
Route::get('logout', array('as' => 'logout', 'uses' => 'SessionsController@destroy'));
Route::resource('sessions', 'SessionsController', array('only' => array('create', 'store', 'destroy')));
登录控制器:

class SessionsController extends BaseController {

public function create() {
    // if I uncomment the following line, everything is OK
    //  echo Session::get('url.intended');
    return View::make('sessions.create');
}

public function store() {
    $input = Input::all();

    $attempt = Auth::attempt(array(
        "nom" => $input["nom"],
        "password" => $input["password"]
    ));

    if($attempt) return Redirect::intended("/");

    return Redirect::back()->with("flash_error", "Nom ou mot de passe invalide")->withInput();
}

public function destroy() {
    Auth::logout();
    return Redirect::home();
}

}
视图创建.blade

@extends("layouts.default")
@section("content")

<div class="login_form">

<div class="row"><div class="col-md-4 col-md-offset-4">
  <h2>Identification</h2>
</div></div>

<div class="row">
  <div class="col-md-4 col-md-offset-4">
    {{ Form::open(array('route' => 'sessions.store', 'class' => 'form', 'role' => 'form')) }}
      <div class="form-group">
        {{ Form::label('nom', 'Nom') }}
        {{ Form::text('nom', '', array('autocomplete'=>'off', 'class' => 'form-control')) }}
      </div>
      <div class="form-group">
        {{ Form::label('password', 'Mot de passe') }}
        {{ Form::password('password', array('autocomplete'=>'off', 'class' => 'form-control')) }}
      </div>
      {{ Form::submit("Connexion", array("class"=>"btn btn-primary")) }}
      {{ Form::close() }}
    </div>
  </div>

</div>

@stop
@扩展(“layouts.default”)
@第节(“内容”)
识别
{Form::open(数组('route'=>'sessions.store','class'=>'Form','role'=>'Form'))}
{{Form::label('nom','nom')}
{{Form::text('nom','',数组('autocomplete'=>'off','class'=>'Form control'))}
{{Form::label('password','Mot de passe')}
{{Form::password('password',array('autocomplete'=>'off','class'=>'Form control'))}
{{表单::提交(“连接”,数组(“类”=>“btn btn主”)}
{{Form::close()}}
@停止
和默认的刀片布局

<!DOCTYPE html>
<html lang="fr">
<head>
    (...) head removed for code clarity
</head>
<body>
    <div class="container">

        @if(Session::get("flash_msg"))
            <div class="row fox-info"><div class="col-md-12">
                <div class="alert alert-info">
                    {{ Session::get("flash_msg") }}
                </div>
            </div></div>
        @endif

        <nav class="navbar navbar-default" role="navigation">
            <a class="navbar-brand" href="#">EK | FOX</a>

            <ul class="nav navbar-nav">
                @yield("trail")
            </ul>

            <ul class="nav navbar-nav navbar-right">
                @if(Auth::user())
                <li class="dropdown">
                    <a href="#" data-toggle="dropdown">{{ Auth::user()->nom }} <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="{{ route('logout') }}">Déconnexion</a></li>
                    </ul>
                </li>
                @endif
            </ul>
        </nav>

        @if(Session::get("flash_error"))
            <div class="row"><div class="col-md-12">
                <div class="alert alert-danger">
                    {{ Session::get("flash_error") }}
                </div>
            </div></div>
        @endif

        @yield("content")
    </div>

    (...) js scripts removed for code clarity

</body>
</html>

(…)为了代码清晰,头部已移除
@if(Session::get(“flash_msg”))
{{Session::get(“flash_msg”)}
@恩迪夫
    @产量(“试验”)
    @if(Auth::user())
  • @恩迪夫
@if(Session::get(“flash_错误”)) {{Session::get(“flash_错误”)} @恩迪夫 @产量(“含量”) (…)为了代码清晰,删除了js脚本
我花了一些时间来处理这个问题,问题来自对“不需要的路由”(fourniseurs/ax_getListProduits
)的不幸ajax post调用。此ajax调用是在页面创建之后进行的,即使它返回404错误,Laravel仍在更新
url。页面创建和表单提交之间的预期
会话变量。

为什么要“回显”会话url,然后加载视图?这就是问题所在。发布您的“sessions.create”代码,我们就可以找到解决方案了。@TheShift Exchange谢谢!我添加了视图代码(session.create和扩展布局)。非常清楚:我没有回显会话url,我只是在某个时刻编写了这个跟踪以进行调试,我发现有了这段代码,Redirect::designed()就可以工作了(跟踪是正确的,重定向也是正确的),如果没有它,它就会失败。