【问题标题】: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"

标签: php laravel


【解决方案1】:

解决方案是为referenciaDuplicada 添加条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多