【发布时间】:2019-08-06 15:50:28
【问题描述】:
我是 Laravel 的新手,在为我的应用程序设置更新时遇到了一些问题。我试图通过路由将 id 从视图传递到控制器以选择特定行,然后我需要从控制器传递到另一个视图。我知道我哪里做错了。
这是我通过 de id 的视图代码:
@forEach($line as $data)
<tr>
<td><a href="{{route('edit.line', ['id', $data->id])}}"><i class="icon ion-md-create"></i></a></td>
<td>{{$data->name}}</td>
<td>{{$data->time}}</td>
</tr>
@endforEach
路线如下:
Route::get('/lineEdit/{id}', 'LineController@formEdit')->name('edit.line')->middleware('auth');
这是来自路由的控制器函数:
public function formEdit($id){
$line = Line::find($id);
$lineUp = Line::select('*')
->where('id', $line)->get();
return view('lineEdit')->with('line', $lineUp);
}
这是将接收数组的视图部分:
<div class="card-body">
@forEach($line as $data)
<form method="POST" action="{{route('update.line', $data->id)}}">
@csrf
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">
{{__('Name')}}
</label>
<div class="col-md-8">
<input type="text" name="name" class="form-control {{$errors->has('name') ? 'is-invalid' : ''}}" value={{$data->name}} required autofocus >
@if($errors->has('name'))
<span class="invalid-feedback" role="alert">
<strong>{{$errors->first('name')}}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row">
<label for="time" class="col-md-4 col-form-label text-md-right">
{{__('Time')}}
</label>
<div class="col-md-8">
<input type="number" name="time" class="form-control {{$errors->has('time') ? 'is-invalid' : ''}}" value={{$data->time}} required >
@if($errors->has('time'))
<span class="invalid-feedback" role="alert">
<strong>{{$errors->first('time')}}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Save') }}
</button>
</div>
</div>
</form>
@endforEach
</div>
forEach 中的所有内容都不会渲染。我看不出问题。
【问题讨论】:
-
您要加载一个
Line还是多个?另外,为什么你在控制器方法中使用了两次Line模型? -
你的代码是多余的;您正在通过 id 查询
Line(通过::find($id)),然后调用本质上相同的查询,除了您不能在查询中使用$line,因为它是Model。你必须使用$line->id,但同样,这是多余的,因为你已经拥有$id,这将是同一件事......你想做什么?此外,如果您尝试编辑单个Line,为什么要将其发送到Collection中的视图?只需删除@foreach()循环和用于编辑$line的控件... -
@TimLewis 我需要我的用户查看当前数据并传递 id 以更新行。我删除了无用的查询并留下了 de find::($id) 和 forEach。我需要我的视图能够接收查询结果,并将 id 和新值传递回控制器。
-
@TimLewis 非常感谢你的帮助,除了你说的问题外,我在将 id 传递给控制器时有一个错字。现在它运行良好