ERR_TOO_MANY_REDIRECTS - Laravel
ERR_TOO_MANY_REDIRECTS - Laravel
希望我能得到一些帮助...现在已经搜索了 24 小时的答案...我似乎无法找到它发生的原因。它只发生在一页上(POST 方法)...每隔一页都可以。
我不是 Laravel 方面的专家,但我想我已经把它全部整理好了,因为它在我的本地服务器上运行良好。部署后,一切都很好,但没有插入数据库的页面和 returns 一个 ERR_TOO_MANY_REDIRECTS.
使用 Laravel 框架 5.6.12
路线:
Route::get('/requests/new', 'RequestsController@newRequest')->name('new_request');
Route::post('/requests/new', 'RequestsController@newRequest')->name('new_request');
控制器:
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);
}
服务模式:
public function getRequests()
{
$latest_request = DB::table('requests as r')
->select('r.request_id')
->orderBy('r.request_id', 'desc')
->get()
;
return $latest_request;
}
而我的观点:
@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,也没有任何变化,仍然无法正常工作。
- 我有另一个页面做的事情非常相似(插入数据库并验证 - returns 视图和数据)并且工作正常。
- 使用共享主机。但是其他一切,包括 'similar' 页面都可以正常工作。只有这个看起来像个问题。
Cookies 给任何能帮到我的人!
尝试将 get 和 post 放在不同的函数中...
它看起来像浏览器进入循环导致路由。
您必须将 GET 和 POST 请求拆分为 2 个不同的函数。
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');
并从那里处理视图。
循环的不是laravel。这是你的浏览器。
希望我能得到一些帮助...现在已经搜索了 24 小时的答案...我似乎无法找到它发生的原因。它只发生在一页上(POST 方法)...每隔一页都可以。
我不是 Laravel 方面的专家,但我想我已经把它全部整理好了,因为它在我的本地服务器上运行良好。部署后,一切都很好,但没有插入数据库的页面和 returns 一个 ERR_TOO_MANY_REDIRECTS.
使用 Laravel 框架 5.6.12
路线:
Route::get('/requests/new', 'RequestsController@newRequest')->name('new_request');
Route::post('/requests/new', 'RequestsController@newRequest')->name('new_request');
控制器:
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);
}
服务模式:
public function getRequests()
{
$latest_request = DB::table('requests as r')
->select('r.request_id')
->orderBy('r.request_id', 'desc')
->get()
;
return $latest_request;
}
而我的观点:
@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,也没有任何变化,仍然无法正常工作。
- 我有另一个页面做的事情非常相似(插入数据库并验证 - returns 视图和数据)并且工作正常。
- 使用共享主机。但是其他一切,包括 'similar' 页面都可以正常工作。只有这个看起来像个问题。
Cookies 给任何能帮到我的人!
尝试将 get 和 post 放在不同的函数中... 它看起来像浏览器进入循环导致路由。
您必须将 GET 和 POST 请求拆分为 2 个不同的函数。
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');
并从那里处理视图。
循环的不是laravel。这是你的浏览器。