Я думаю, потому что вы используете два ввода в вашем @foreach
и цикле foreach 2 раза ..
попробуйте это:
<form action="" method="post">
@csrf
@foreach($options as $opt)
<label for="{{ $opt->o_name }}">{{ $opt->o_name }}</label>
<input type="text" id="{{ $opt->o_name }}" name="{{ $opt->o_name }}" value="{{ $opt->o_value }}">
@endforeach
<input type="submit" value="save">
</form>
Обновление:
Если вы хотите получить конкретные строки, вы можете просто получить их, которые хотите, затем перейти в представление
$options = DB::table('options')
->where('o_name', 'siteName')
->orWhere('o_name', 'siteUrl')
->get();
или построитель запросов:
$options = Option::where(function ($q) {
$q->where('o_name', 'siteName')->orWhere('o_name', 'siteUrl');
})->get();
другим способом являетсяиспользуя Laravel Scopes