分享 / 0 / 23 / 创建于 6年前
我使用laravel5.5写的接口,使用return返回信息的话,调用一次,接口自动执行两次;使用dd()结束就只执行一次,怎么搞啊,我要疯了
show code
no pic you say jb
哈哈哈,no pic you say jb +1
就这个执行一次,数据库会插入两次
@Small_Tree
执行一次,数据库会插入两次
@tegic
@pigzzz
哼~,你不需要return 就已经执行了,所以,你的return 是多余。也就为什么会执行2次了
@Small_Tree return不是结束当前接口并返回值吗?那我希望接口调用一次就只执行一次,应该怎么改呢?
if($aa){ $response = [ 'status' => 0, 'msg' => '写入成功', ]; }esle{ $response = [ 'status' =>1, 'msg' => '写入失败', ]; } return response()->json($response, 200);
以上是针对你的代码写的API JSON返回信息
返回这个
但是数据库还是每次都插入了两次
贴代码
@Small_Tree public function aa(){ $aa = Channel::create([ 'Pname' => 'as45', 'Code' => '97', 'Cnname' => '97', ]); if($aa){ $response = [ 'status' => 0, 'msg' => '写入成功', ]; }else { $response = [ 'status' => 1, 'msg' => '写入失败', ]; } return response()->json($response, 200); }
修改成如下试试 public function aa(){ $data = [ 'Pname' => 'as45', 'Code' => '97', 'Cnname' => '97' ]; $aa = Channel::insert($data); if($aa){ $response = [ 'status' => 0, 'msg' => '写入成功', ]; }else { $response = [ 'status' => 1, 'msg' => '写入失败', ]; } return response()->json($response, 200); }
换个浏览器试试 或者用Postman
@Small_Tree 还是插入两次 $data = [ 'Pname' => 'as45', 'Code' => '123', 'Cnname' => '123' ]; $aa = Channel::insert($data); if($aa){ $response = [ 'status' => 0, 'msg' => '写入成功', ]; }else { $response = [ 'status' => 1, 'msg' => '写入失败', ]; } return response()->json($response, 200);
@LeO荣 都换过了,还是两次
@vio_xiaohei 那应该是别的地方出现了问题,可以肯定的是public function aa(){} 里面的代码是没有任何问题的。你可以检查下其它地方
@vio_xiaohei 你打印下日志,看看是一条还是两条(代码本身没为题)
@LeO荣 所有return结尾的接口都是调用一次就执行两次,
@vio_xiaohei 换个环境 换台机器 各种方法都试下,再不行新建一个项目,就写一段测试代码实验下都可以
@LeO荣 我试过,新的项目就没有这个问题了,但是我这个不能新建项目啊大佬,我是不是改动了laravel底层,怎么改回来呢?感觉就是return 的问题。
@vio_xiaohei 你自己没之前的备份吗?还原啊
我要举报该,理由是:
show code
no pic you say jb
哈哈哈,no pic you say jb +1
就这个执行一次,数据库会插入两次
@Small_Tree
执行一次,数据库会插入两次
@tegic
@pigzzz
哼~,你不需要return 就已经执行了,所以,你的return 是多余。也就为什么会执行2次了
@Small_Tree return不是结束当前接口并返回值吗?那我希望接口调用一次就只执行一次,应该怎么改呢?
if($aa){
$response = [
'status' => 0,
'msg' => '写入成功',
];
}esle{
$response = [
'status' =>1,
'msg' => '写入失败',
];
}
return response()->json($response, 200);
以上是针对你的代码写的API JSON返回信息
@Small_Tree
返回这个

但是数据库还是每次都插入了两次

贴代码
@Small_Tree public function aa(){
$aa = Channel::create([
'Pname' => 'as45',
'Code' => '97',
'Cnname' => '97',
]);
if($aa){
$response = [
'status' => 0,
'msg' => '写入成功',
];
}else {
$response = [
'status' => 1,
'msg' => '写入失败',
];
}
return response()->json($response, 200);
}
修改成如下试试
public function aa(){
$data = [
'Pname' => 'as45',
'Code' => '97',
'Cnname' => '97'
];
$aa = Channel::insert($data);
if($aa){
$response = [
'status' => 0,
'msg' => '写入成功',
];
}else {
$response = [
'status' => 1,
'msg' => '写入失败',
];
}
return response()->json($response, 200);
}
换个浏览器试试
或者用Postman
@Small_Tree 还是插入两次
$data = [
'Pname' => 'as45',
'Code' => '123',
'Cnname' => '123'
];
$aa = Channel::insert($data);
if($aa){
$response = [
'status' => 0,
'msg' => '写入成功',
];
}else {
$response = [
'status' => 1,
'msg' => '写入失败',
];
}
return response()->json($response, 200);
@LeO荣 都换过了,还是两次
@vio_xiaohei 那应该是别的地方出现了问题,可以肯定的是public function aa(){} 里面的代码是没有任何问题的。你可以检查下其它地方
@vio_xiaohei 你打印下日志,看看是一条还是两条(代码本身没为题)
@LeO荣 所有return结尾的接口都是调用一次就执行两次,
@vio_xiaohei 换个环境 换台机器 各种方法都试下,再不行新建一个项目,就写一段测试代码实验下都可以
@LeO荣 我试过,新的项目就没有这个问题了,但是我这个不能新建项目啊大佬,我是不是改动了laravel底层,怎么改回来呢?感觉就是return 的问题。
@vio_xiaohei 你自己没之前的备份吗?还原啊