Как решить проблему получения необычного идентификатора в Laravel - PullRequest
0 голосов
/ 14 октября 2019

Вот мои маршруты

Route::get('add-members/{id}','MemberController@create');
Route::post('save-member/{id}','MemberController@store');

Это мой код для отображения формы создания

public function create($id)
    {
        $team=Team::find($id);
        $users = User::doesntHave('teams')->whereHas('roles', function($role) {
            $role->where('name', 'member');
        })->get();
        return view('members.create',compact('users','team'));
    }

Это мой код для хранения

public function store(Request $request,$id)
    {
        $team=Team::find($id);
        dd($request->id);
        $team->users()->attach($request->id);
        return redirect('home');

} и это мой блейд-файл

@extends('layouts.app')
@section('content')
    <form action="{{url('save-member',$team->id)}}" method="post" accept-charset="utf-8">
        @csrf
        <div class="form-group row">
            <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Select Member/s') }}</label>
            <div class="col-md-6">
                @foreach($users as $key => $user)
                    <input type="checkbox" name="id[]" value="{{$user->id}}">{{$user->email}}<br>
                @endforeach
                @error('member_id')
                <span class="invalid-feedback" role="alert"><strong><font
                            color="red">{{ $message }}</font></strong></span>
                @enderror
            </div>
        </div>
        <button type="submit" class="btn btn-primary">Save</button>
    </form>
@endsection

Теперь, когда я не выбрал ни одного пользователя и просто нажал кнопку «Сохранить», он сохранит идентификатор пользователя как 1. После того, как я сделаю dd ($ request->id) это покажет мне вывод 1. Но в моей форме нет пользователей, или моя форма пуста. Так, откуда приходит 1. Вы можете увидеть эту картинку для прояснения. enter image description here Пожалуйста, помогите мне решить эту проблему

1 Ответ

2 голосов
/ 14 октября 2019

Вы должны более конкретно указать, какие данные вы запрашиваете у Request:

$request->id; // could be an input named 'id' or a route parameter named 'id'

$request->input('id'); // is an input
$request->route('id'); // is a route parameter

Вы столкнулись с ситуацией, когда у вас есть параметр маршрута с именем id и, возможно, вход с именемid. Использование динамического свойства запроса $request->id вернет входные данные id, если они есть, если нет, то вернется к возвращению параметра маршрута с именем id.

Вот статья изПрошлое, которое показывает проблему с неконкретностью того, что вы пытаетесь получить от объекта Request: asklagbox - blog - следите за запросом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...