我想为“状态”创造条件
Posted
技术标签:
【中文标题】我想为“状态”创造条件【英文标题】:I want to create a condition for 'estatus' 【发布时间】:2020-12-04 14:49:53 【问题描述】:我有这个功能:
public function referenciaDuplicada($referencia , $compra_id = null)
if( $compra_id )
return Compra::where('referencia',$referencia)->where('id','!=',$compra_id)->count();
return Compra::where('referencia',$referencia)->count();
这是为了防止用户在 'referencia' 值上创建具有重复性的 Compra。
我在这里使用它:
public function update(UpdateRequest $request)
$subotal_articulos = $this->subotalArticulos($request->articulos);
$referencia_duplicada = $this->referenciaDuplicada($request->orden_compra['referencia'],$request->orden_compra['po_id']);
$remision_duplicada = $this->remisionDuplicada($request->orden_compra['remision'],$request->orden_compra['po_id']);
if( $referencia_duplicada > 0 )
return response()->json(['errors' =>
['El número de Referencia ya existe. Por favor, ingrese una nueva Referencia.'],
'data' => null
], 422);
当前用户正在创建 'Compra',但如果 Compra 被取消,您应该能够使用 'referencia' 值,因为 Compra 已被删除。但是,即使取消了 Compra,用于该 Compra 的“referencia”也不能再使用了。
我想添加一个条件来验证,当 Compra 'estatus' 值为 'aprobado' 时,用户无法继续并抛出上述错误.
【问题讨论】:
只需在referenciaDuplicada
查询生成器中添加条件
是的,但是应该如何输入 cpndition?我正在尝试使用 whereNotIn 但我不知道在哪里写它。它应该是: whereNotIn('estatus' , ['rechazada' , 'cancelada'])
这能回答你的问题吗? Laravel Eloquent "WHERE NOT IN"
【参考方案1】:
解决方案是为referenciaDuplicada
添加条件。
【讨论】:
以上是关于我想为“状态”创造条件的主要内容,如果未能解决你的问题,请参考以下文章