开发者社区 问答 正文

如何在使用Laravel创建表单时显示最后报价单号

我很难让最后一个报价号显示给我的用户。它以升序排列,但不是主键。我要显示的是用户输入的LAST报价编号,以确保这是他们使用的最后一个编号,并且他们可以将此编号用于新数据输入,因为他们将基于相同的报价编号进行修订。

例如。1条记录->报价编号 1000001修订号 0 1条记录->报价编号 1000001修订号 1 1条记录->报价编号 1000001修订号 2 1条记录->报价编号 1000002修订号 0 1条记录->报价编号 1000003修订号 0

最后使用的引号是1000003,因此1000003应该出现在新表单创建的字段中。

表格栏位图片

我只需要数字出现在字段上并有一个按钮,用户可以在其中单击向上或向下。但最重要的是显示最后使用的报价单号。

我尝试了各种解决方案,但是没有用。请帮助建议在什么位置插入我的代码。

在创建下的Controller中,我只有这一行。我应该再添加些什么吗?还是应该添加到create.blade.php页面?我已经在下面粘贴了两个代码。TIA。

公共功能create(){return view('quotation.quotation_create'); }

<div class="form-group row {{ $errors->has('quot_id') ? 'has-error' : '' }}">
      {!! Form::label('quot_id', '*Quote No.:', ['class' => 'col-sm-2 col-form-label font-weight-bold']) !!}
        <div class="col-sm-4"> 
       <input type="text" id="number" value="10000001" readonly>
    </div>
    {!! Form::label('quot_rev', '*Revision No.:', ['class' => 'col-sm-2 col-form-label font-weight-bold']) !!}
    <div class="col-sm-3">
    {!! Form::number('quot_rev', '0', ['class' => 'form-control', 'required' => 'required', 'autocomplete' => 'off']) !!}
    <span class="text-danger">{{ $errors->first('quot_rev') }}</span>
    </div>
    </div>

展开
收起
游客hvab22isfpklc 2019-12-02 17:44:26 981 分享 版权
阿里云 AI 助理回答

要实现这个功能,你需要在后端(Controller)查询数据库以获取最后使用的报价编号,并将此信息传递给前端(Blade模板)。这里是一个基本的示例流程来帮助你实现这一需求:

1. 更新Controller中的create方法

首先,在你的Controller中添加逻辑来查询数据库,找到具有最大修订号的最后一个报价编号。你可以使用Eloquent ORM的查询构造器来完成这个任务。

use App\Models\Quotation; // 确保引入了正确的模型

public function create()
{
    // 查询具有最大修订号的记录,按报价编号和修订号降序排列,取第一条
    $lastQuotation = Quotation::orderBy('quot_id', 'desc')
                              ->orderBy('quot_rev', 'desc')
                              ->first();

    // 如果有记录,提取报价编号,否则设置一个默认值或处理错误
    $lastQuotationNo = $lastQuotation ? $lastQuotation->quot_id : null;

    // 将最后的报价编号传递到视图
    return view('quotation.quotation_create', compact('lastQuotationNo'));
}

2. 更新Blade模板(create.blade.php)

然后,在你的Blade模板中,显示从Controller传递过来的$lastQuotationNo,并提供按钮让用户可以增加或减少修订号。

{!! Form::open(['route' => 'quotation.store']) !!}
<div class="form-group row">
    {!! Form::label('quot_id', '*Quote No.:', ['class' => 'col-sm-2 col-form-label font-weight-bold']) !!}
    <div class="col-sm-10">
        {{-- 显示最后的报价编号,并禁用编辑 --}}
        <input type="text" class="form-control-plaintext" value="{{ $lastQuotationNo }}" readonly>
        
        {{-- 这里可以添加向上/向下按钮的逻辑,例如使用JavaScript来修改'quot_rev'字段 --}}
    </div>
</div>

{!! Form::label('quot_rev', '*Revision No.:', ['class' => 'col-sm-2 col-form-label font-weight-bold']) !!}
{!! Form::number('quot_rev', '0', ['class' => 'form-control', 'required' => 'required', 'autocomplete' => 'off']) !!}
{{ $errors->first('quot_rev') }}

<!-- 其他表单字段 -->

{!! Form::submit('Submit', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}

3. 添加按钮逻辑(可选)

如果你希望用户能够通过点击按钮来调整修订号,你可能需要添加一些JavaScript代码来动态修改quot_rev字段的值。这取决于你希望如何设计用户体验。

请注意,上述代码是基于假设你已经有一个名为Quotation的Eloquent模型,并且数据库表结构与你描述的一致。根据实际情况调整模型名称和字段名。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
PHP
问答地址: