我在使用laravel API保存外键时遇到问题。
错误:
ErrorException(E_NOTICE)
未定义偏移量:2
主控制器
public function store(Request $request,$bo_amigos = false)
{
$request['id_usuario'] = $this->token['id_usuario'];
$request['dt_despesa'] = date("Y-m-d");
$request['bo_dividir_amigos'] = $bo_amigos;
\DB::beginTransaction();
$despesa = \App\Despesa::create($request->all());
if(!$despesa){
return response(["error"=>"erro ao criar despesa, tente novamente mais tarde"]);
}
$despesaItem = new \App\DespesaItem();
$itens = $despesaItem->insert($request,$despesa);
if(!$itens){
return response(['error'=>"erro ao criar itens da despesa"]);
}
\DB::commit();
return $despesa;
}
外键模型
错误来自此模型
退出循环发生错误
class DespesaItem extends Model
{
protected $table = "despesa_item";
protected $primaryKey = 'id_despesa_item';
protected $fillable = ['dt_vencimento','vl_despesa','nu_parcela_atual','nu_parcela','id_despesa','created_at','updated_at'];
public function insert(Request $request,$despesa){
$errors = 0;
$qtParcelas = $request['qtd_parcelas'];
for ($i=0; $i < $qtParcelas; $i++) {
$request['vl_despesa'] = ($request['vl_despesa']/$qtParcelas);
$request['dt_vencimento'] = Helpers::convertdateBr2DB($request['dt_vencimento']);
$request['nu_parcela_atual'] = ($i+1);
$request['nu_parcela'] = $qtParcelas;
$request['id_despesa'] = $despesa['id_despesa'];
$item = \App\DespesaItem::create($request->all());
if(!$item){
$errors++;
}
$i++;
}
if($errors>0){
return response(["error" =>"errors"]);
}
return $request;
}
}
类助手convertdateBr2DB
public static function convertdateBr2DB($date){
if(empty($date))
return null;
$arDate = explode("/",$date);
return date("$arDate[2]-$arDate[1]-$arDate[0]");
}