如何解决在Laravel中获得异常ID的问题

时间:2019-10-14 17:09:51

标签: php laravel

这是我的路线

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

现在,当我不选择任何用户,只需单击保存按钮时,它将用户ID保存为1。在执行dd($ request-> id)之后,它将向我显示输出1。但是在我的表单中没有用户了,或者我的表单为空。所以从1来的地方。您可以查看这张图片以进行澄清。 enter image description here 请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

您应该更具体地说明从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 - watch out for request