我还在学习laravel,并创建了一个v5.4.28的项目,也用dev v5.5测试了两个版本调用控制器两次,从而插入2条记录。 只有在我使用WAMP并访问http://localhost/laravel/public/test?test=123
时才会发生这种情况如果我使用php artisan服务并访问此内容 http://127.0.0.1:8000/test?test=123 它只插入一次
如果我使用chrome检查并查看我的网络标签,我会看到该页面在wamp上被调用两次。
这是正常的吗?
编辑我的routes / web.php到
Route::get('/', function () {
return view('home');
});
Route::get('/test', 'testController@store');
并创建了一个testController
class testController extends Controller
{
public function store()
{
$test = new Test;
$test ->user_id = request('test');
$test ->save();
//if i put a redirect here then it wont insert twice
}
}
答案 0 :(得分:0)
如果您有中间件对next
进行了两次调用,也可能会发生这种情况。例如,假设您具有父中间件的handle函数,如下所示:
public function handle($request, Closure $next, ...$guards){
// Your logic here
return $next($request);
}
现在,假设您具有以下子中间件:
public function handle($request, Closure $next, ...$guards){
// Note this call to the parent's next
$resp = parent::handler($request, $next, $guards);
// Extra logic here
// ... and now we make another call to next
return $next($request);
}
为避免这种情况,请确保在中间件的handle函数中一次调用next
。