我已经用这个错误拉了我的头发几个小时,但是不明白它为什么这样做。我之前在Laravel上做过这个,但它似乎并不想工作。
这是我试图开始工作的方法:
public function store($name, CreateProfileRequest $request)
{
$user = User::whereName($name)->first();
$house = new House();
$house->first_line_address = $request->get('first_line_address');
$house->city = $request->get('city');
$house->postcode = $request->get('postcode');
$user->house()->save($house);
return redirect('/');
}
这是我试图从中获取数据的表单:
{!! Form::model($user->house, ['route' => 'profile.store']) !!}
<div class ="form-group">
{!! Form::label('first_line_address', 'First line of address:') !!}
{!! Form::text('first_line_address', null, ['class' => 'form-control'])!!}
</div>
<div class ="form-group">
{!! Form::label('city', 'Town/City:') !!}
{!! Form::text('city', null, ['class' => 'form-control'])!!}
</div>
<div class ="form-group">
{!! Form::label('postcode', 'Postcode:') !!}
{!! Form::text('postcode', null, ['class' => 'form-control'])!!}
</div>
<div class ="form-group">
{!! Form::submit('Update Profile', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
</div>
没关系,直到我尝试存储它然后我
传递给App \ Http \ Controllers \ ProfileController :: store()的参数2必须是App \ Http \ Requests \ CreateProfileRequest的实例,没有给出
这是我的路线:
$router->resource('profile', 'ProfileController');
| GET | HEAD |个人资料| profile.index |应用程序\ HTTP \控制器\ ProfileController可@指数 | |
| | GET | HEAD |个人资料/创建| profile.create |应用程序\ HTTP \控制器\ ProfileController可@创建 | |
| | POST |个人资料| profile.store |应用程序\ HTTP \控制器\ ProfileController可@店 | |
| | GET | HEAD |个人资料/ {profile} | profile.show |应用程序\ HTTP \控制器\ ProfileController可@秀 | |
| | GET | HEAD |个人资料/ {个人资料} /编辑| profile.edit |应用程序\ HTTP \控制器\ ProfileController可@编辑 | |
| | PUT |个人资料/ {profile} | profile.update |应用程序\ HTTP \控制器\ ProfileController可@更新 | |
| |补丁|个人资料/ {profile} | |应用程序\ HTTP \控制器\ ProfileController可@更新 | |
| |删除|个人资料/ {profile} | profile.destroy |应用程序\ HTTP \控制器\ ProfileController可@破坏 | |
如果有人想到如何摆脱这种荒谬的错误,我将永远感激不尽:)
答案 0 :(得分:3)
如果希望控制器方法可以使用SendKeys("user");
SendKeys("{TAB}");
SendKeys("password");
SendKeys("~"); // Enter
的实例,则它必须是第一个参数,后跟通过URI传递的其他参数。扭转方法。
答案 1 :(得分:2)
资源控制器/路由的store()
方法不接受任何路由参数。这意味着Laravel无法通过$name
论证。我想你在请求数据本身传递了这个名字。如果是这种情况,您可以使用$request->input('name')
访问它。
无论如何,您应该从方法签名中删除$name
:
public function store(CreateProfileRequest $request)