deadloop
@deadloop
Активно осваиваю PHP

Как передать имена инпутов в массив?

Добрый всем. У меня есть форма, я хочу передать имена ипутов массивом вместо name="title" передать name="pass[title]", и затем что бы не пладить много строчек кода в котнроллере заменить все одной строкой. Я столкнулся с проблеммой, как мне передать $pass->user_id = $id; и $pass->private = $request->private ? 0 : 1; с нужными значенимями? Мне тут подсказывали что можно использовать Eloquent: Mutators.

Форма:
<div class="form-group">
    <p>Пароль:</p>
    <input name="title" type="text" class="form-control"  required value="{{ $pass->title ?? ''}}">
</div>
<div class="form-group">
    <p>Для чего:</p>
    <input name="source" type="text" class="form-control"  required value="{{ $pass->source ?? ''}}">
</div>
<div class="form-group">
    <input type="checkbox" name="private">
        <label>Личный</label>
</div>
<div class="form-group">
    <label for="category_id">Категория</label>
    <select name="category_id" id="category_id" class="form-control">
        @foreach ($categorys as $category)
            <option value="{{$category->id}}">{{$category->title}}</option>
        @endforeach
    </select>
</div>


Контроллер:
public function store(Request $request) {
        $id = Auth::user()->id;
        $pass = new Pass();
        $pass->title = $request->title;
        $pass->source = $request->source;
        $pass->category_id = $request->category_id;
        $pass->user_id = $id;
        $pass->private = $request->private ? 0 : 1;
        $pass->save();
        return redirect()->route('home');
    }
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
public function store(Request $request) {
  $validator = Validator::make($request->all(), [
    'title' => 'required|string',
    'source' => 'required|string',
    'category_id' => 'required|integer|exists:categories,id',
  ]);

  try {
    $input = $validator->validate();
  } catch (ValidationException $e) {
    return redirect()->back()->withErrors($validator)->withInput();
  }

  $input['id'] = Auth::user()->id;
  $input['private'] = $request->has('private') ? 0 : 1;

  Pass::create($input);

  return redirect()->route('home');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы