我想为“状态”创造条件

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 添加条件。

【讨论】:

以上是关于我想为“状态”创造条件的主要内容,如果未能解决你的问题,请参考以下文章

如何为图像和消息创造条件?

有条件上,没有条件创造条件也要上

在 discord.js 中,使用 quick.db 我想为我的机器人的货币系统创建一个卖出命令

他们创造了美国 读书笔记

手机怎么创造软件

Oracle实验五—数据库归档