我是laravel的新手,我尝试通过使用隐藏来插入具有外键的表单的数据,如下面提到的代码: -
<form class="form-horizontal" role="form" action="/WhatTodo/store" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="task_id" value=" {{$what->task_id}}">
<input type="hidden" name="work_id" value="{{$what->work_id}}">
<div class="form-group">
<label class="control-label col-sm-2" for="name"> Name</label>
<div class="col-sm-5">
{!!Form::select('name',$name)!!}
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="work">work:</label>
<div class="col-sm-5">
<input type="text" class="form-control" name="work" value="">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-default" value="Submit">
</div>
</div>
</form>
我有控制器功能: -
public function create($id)
{
$what=WhatTodoModel::findorFail($id);
$name=WOrk::lists('name','name');
return view('what/create',compact('what','name'));
}
答案 0 :(得分:3)
你还没有真正告诉我们你的问题是什么,或者你得到了什么错误,但我对当前问题的猜测是:
假设您正在尝试实现资源路由和资源控制器,create
方法用于显示表单以创建新对象,而不是编辑现有对象。 create
方法不接受任何参数,因此$id
将为空,WhatTodoModel::findorFail($id);
将引发异常。
如果要编辑现有记录,可以使用edit
操作执行此操作。
要创建新记录,create
会显示表单,store
会保存记录
要编辑现有记录,edit
会显示表单,update
会保存记录。