php - 从输入选定值中分离字符串
问题描述
我从选定的下拉值中有两个单独的字符串值。喜欢
<label>Book ID</label><span class="required">*</span>
<select class="js-example-basic-single form-control" name="sel_Book">
@foreach ($books as $data)
<option value="{{ $data->BookID }}-{{ $data->BookUnitPrice }}">{{ $data->BookName }} --- {{ $data->BookUnitPrice }}</option>
@endforeach
</select>
所以在控制器中,该值被检索为BookID-BookUnitPrice
例如Eng11-500
“来自sel_Bookdropdown. So I have to separate this value and set
Book = Eng11 and
UnitPrice = 500`。我该怎么做?
代码块
$booksout -> Distributor = $request->input('sel_Distributor');
$booksout -> Book = $request->input('sel_Book');
return response()->json($request);
$booksout -> UnitPrice =
$booksout -> Quantity = $request->input('DistQuantity');
解决方案
这就是您使用 ID 的原因。
格式化您的选择,如:
<option value="{{ $data->BookID }}">
{{ $data->BookName }} --- {{ $data->BookUnitPrice }}
</option>
然后在您获取它们时在您的控制器中:
下面的代码假设 bookout 模型具有所有字符串/数字字段:
$book_id = $request->input('sel_Book');
$book = Book::find($book_id);
if($book) {
$booksout->Distributor = $book->Distributor->Name;
$booksout->book = $book->BookName ;
$booksout->UnitPrice = $book->BookUnitPrice
$booksout->Quantity = $request->input('DistQuantity');
}
通过这种方式,您可以使用完整的图书对象,而不必担心用户伪造了发送到您服务器的数据。如果您依赖 post/get 请求中的价格,我可以通过欺骗价格以 0 的价格购买您的书籍。
永远不要相信用户数据。始终尝试从您自己的可信数据源中收集尽可能多的输入,用户只能提供产品 ID 和数量。
另一个注意事项,考虑使用 camelCase 而不是 StudlyCase。因此,大多数程序员通常不$book->BookUnitPrice
使用$book->bookUnitPrice
StudlyCase 来解释类名。
推荐阅读
- oracle - 对连接的数据进行分组
- angular - 如何将输入字段限制为 4 位小数?
- spring - 如何在 JPA 中区分相同的异常类型
- c# - 将应用程序从 Framework 4.6 更改为 4.0 并且 SchemaComparison 停止工作
- powershell - Get-AdGroupMember -recursive 在返回用户时不返回组
- android - 我的 React Native 应用程序会在 AndroidX 上运行吗?
- linux - 如何基于公共列合并文件?
- python - 如何通过复制前一行动态创建新行
- python - UnsatisfiableError:尝试创建 Python 3.4 Conda env 时发生包冲突
- terraform - Terraform 在定义新资源的同时破坏资源