如何将下拉菜单中选择的选项发送到数据库?我需要刀片语法来发送它们。 这是我的验证代码:
FrontController
public function insert(Request $request)
{
$request->validate([
'jenis' => 'required|string',
'kategori' => 'required|string',
'nopol' => 'required|string',
]);
DB::table('park')->insert([
'jenis' => $request->input('jenis'),
'kategori' => $request->input('kategori'),
'nopol' => $request->input('nopol'),
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
'status' => true;
]);
}
home.blade.php
<div class="control-group">
<label class="control-label" for="typeahead">Jenis Kendaraan</label>
<div class="controls">
<select id="opt" name="jenis">
<option value="1">Motor</option>
<option value="2">Mobil</option>
</select>
</div>
</div>
我应该使用@foreach还是直接使用@if @else @endif?
答案 0 :(得分:0)
我认为您想使用'Motor'或'Mobile'值保存jenis,因为您正在验证为字符串。放为
<select id="opt" name="jenis">
<option value="Motor">Motor</option>
<option value="Mobil">Mobil</option>
</select>
答案 1 :(得分:0)
无论您写入什么值,都将放入请求对象。
<option value="1">Motor</option>
这是您在值中写入的内容,因此在request()-> input('jenis')中的表单提交中,您将获得1.。您应该提供数字验证或介于(范围)验证类型,请检查laravel文档。
答案 2 :(得分:0)
万一有人通过谷歌搜索偶然发现了如何验证实际Blade语法的信息,请检查一下。
创建自定义验证规则:
<?php
namespace App\Rules;
use Exception;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\File;
class BladeSyntax implements Rule
{
private $message;
public function passes($attribute, $value)
{
File::put(resource_path('views/validation.blade.php'), $value);
try {
view('validation')->render();
return true;
}
catch (Exception $exception) {
$this->message = $exception->getMessage();
return false;
}
}
public function message()
{
return explode('(', $this->message)[0];
}
}
然后在验证规则中使用new BladeSyntax
。