首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ERR_TOO_MANY_REDIRECTS - Laravel

ERR_TOO_MANY_REDIRECTS - Laravel
EN

Stack Overflow用户
提问于 2018-03-31 00:10:13
回答 2查看 4.4K关注 0票数 2

希望我能得到帮助..。24小时以来一直在寻找答案。我似乎找不到它发生的原因。它只发生在一页(POST方法).其他每一页都没问题。

我不是Laravel的专家,但我认为我已经把所有的事情都安排好了,因为它在我的本地服务器上运行得很好。一旦部署完毕,除了没有插入DB并返回一个ERR_TOO_MANY_REDIRECTS的页面之外,一切都很好。

使用Laravel框架5.6.12

路由:

代码语言:javascript
复制
Route::get('/requests/new', 'RequestsController@newRequest')->name('new_request');    
Route::post('/requests/new', 'RequestsController@newRequest')->name('new_request');

主计长:

代码语言:javascript
复制
 public function newRequest(Request $request){

            $service = new Service();

            $title = $request->input('title');
            $name = $request->input('name');
            $last_name = $request->input('last_name');
            $address = $request->input('address');
            $postcode = $request->input('postcode');
            $city = $request->input('city');
            $county = $request->input('county');
            $email = $request->input('email');
            $date = $request->input('date');
            $service_id = $request->input('service_id');

            if( $request->isMethod('post') )
                {
                    // dd($data);
                    $this->validate(
                        $request,
                        [
                            'name' => 'required|min:3',
                            'last_name' => 'required',
                            'address' => 'required',
                            'postcode' => 'required',
                            'city' => 'required',
                            'county' => 'required',
                            'email' => 'required',

                        ]
                    );

                }

            $data = array("title"=>$title,"name"=>$name,"last_name"=>$last_name,"address"=>$address,"postcode"=>$postcode,"city"=>$city,"county"=>$county,"email"=>$email,"date"=>$date,"service_id"=>$service_id);

            DB::table('requests')->insert(($data));

            $data_r['requests']= $service->getRequests(); 

            return view('requests/new', $data_r);
       }

服务模式:

代码语言:javascript
复制
public function getRequests()
    {

        $latest_request = DB::table('requests as r')
                                        ->select('r.request_id')
                                        ->orderBy('r.request_id', 'desc')
                                        ->get()
        ;

        return $latest_request;
    }

我的看法是:

代码语言:javascript
复制
@extends('layouts.app')

@section('content')
<div class="cont_client">
<div class="row">
      <div class="medium-12 large-12 columns " >
        <h4>STEP 2: Enter booking information</h4>
        <div class="form_cont">
        <form action="/requests/new" method="post">
         {{ csrf_field() }}
            <input name="service_id" type="hidden" value="{{ $service_id }}" readonly >
          <div class="medium-4  columns">
            <label>Title</label>
            <select name="title">
                         @foreach ($titles as $title )
                              <option value="{{ $title }}" >{{ $title }}.</option>
                        @endforeach 
                        </select>
          </div>
          <div class="medium-4  columns">
            <label>Name</label>
            <input name="name" type="text">
          </div>
          <div class="medium-4  columns">
            <label>Last Name</label>
            <input name="last_name" type="text">
          </div>

           <div class="medium-4  columns">
            <label>Date</label>
            <input name="date" type="date" value="{{ $date }}" readonly>
          </div>
          <div class="medium-8  columns">
            <label>Address</label>
            <input name="address" type="text">
          </div>
          <div class="medium-4  columns">
            <label>Post Code</label>
            <input name="postcode" type="text">
          </div>
          <div class="medium-4  columns">
            <label>City</label>
            <input name="city" type="text">
          </div>
          <div class="medium-4  columns">
            <label>County</label>
            <input name="county" type="text">
          </div>
          <div class="medium-12  columns">
            <label>Email</label>
            <input name="email" type="text" value="{{{ isset(Auth::user()->email) ? Auth::user()->email : Auth::user()->email }}}" readonly>
          </div>
          <div class="medium-12  columns">
            <input value="CONFIRM" class="button success btn_right" type="submit" >
          </div>
        </form>
        </div>
      </div>
    </div>
@endsection

不用说,它在本地服务器(XAMPP)上工作得很好。

  • 我尝试了几个浏览器,因为我发现问题可能与此有关,但即使清除所有的缓存,数据,cookie,没有改变,仍然不能工作。
  • 我有另一个页面,做一些非常类似的事情(插入数据库和验证-返回视图和数据),它运行良好。
  • 使用共享主机。但是其他的一切,包括“相似”页面都能正常工作。只有这个看起来像个问题。

给能帮我的人吃饼干!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-31 05:20:57

您将不得不将GET和POST请求拆分为两个不同的函数。

代码语言:javascript
复制
    Route::get('/requests/new', 'RequestsController@newRequest')->name('request.new');    
Route::post('/requests/new', 'RequestsController@newRequestPost')->name('request.post');

为了简化代码,只要服务模型字段是可填充的,就可以简单地使用$service = new Service($request->all());。运行$service->save();并完成。自动添加id

最后,您需要将POST请求重定向到GET请求return redirect()->route('request.show', [$service->id])->with(['success' => 'Your request has been added']);

创建路由Route::get('/request/{id}', 'RequestsController@requestShow')->name('request.show');并从那里处理视图。

这不是拉拉威尔的循环。是你的浏览器。

票数 1
EN

Stack Overflow用户

发布于 2018-03-31 01:07:57

试着把get和post放在不同的功能中.它看上去就像浏览器进入循环导致的路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49582965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档