【发布时间】:2017-04-04 22:40:33
【问题描述】:
我有一个视图 /station/{id},其中包含一个新闻广播列表。我想在列表中创建一个新闻广播。
在station.show.blade:
<td colspan="11">
@can('newscast_edit')
<a href="{{ route('newscast.create', [$station->id]) }}"
class="btn btn-xs btn-info">Add Newscast</a>
@endcan
</td>
在 NewscastsController 中:
(更改前)
/**
* Show the form for creating new Newscast.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
if (!Gate::allows('newscast_create')) {
return abort(401);
}
$relations = [
'for_stations' => \App\Station::get()->pluck('calls', 'id')->prepend('Please select', ''),
];
$backUrl = Session('_previous');
session(['backUrl' => $backUrl]);
return view('newscast.create', $relations);
}
在 newscast.create.blade:
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-xs-12 form-group">
{!! Form::label('for_station_id', 'For Station*', ['class' => 'control-label']) !!}
{!! Form::select('for_station_id', $for_stations, old('for_station_id'), ['class' => 'form-control
select2']) !!}
<p class="help-block"></p>
@if($errors->has('for_station_id'))
<p class="help-block">
{{ $errors->first('for_station_id') }}
</p>
@endif
</div>
</div>
</div>
</div>
我的目标是删除 NewscastsController 中的 relations 行并将电台 ID 传递给 newscast.create.blade 以代替 select,如 @ 987654328@
我尝试了几种解决方法,包括Passing data from controller to view in Laravel 和https://laravel.io/forum/07-26-2014-routing-passing-parameters-to-controller,但均未成功。
修改create函数为public function create($station_id)
导致此错误:
ReflectionException in RouteDependencyResolverTrait.php line 57: Internal error: Failed to retrieve the default value
我也用谷歌搜索了该错误消息,但没有提出任何改进。 我敢肯定,这可能是在炫耀我在 php 和 Laravel 中仍然是一个菜鸟。我错过了什么?
【问题讨论】:
-
如果你转储
$for_stations,你会看到什么?另外,您的routes.php文件中有什么内容? -
在 web.php(路由文件)
//Newscasts routes Route::resource('newscast', 'NewscastsController'); Route::post('newscasts_mass_destroy', ['uses' => 'NewscastsController@massDestroy', 'as' => 'newscasts.mass_destroy']); -
我无法使用上面的代码访问
$for_stations。将 station.show.blade 更改为<a href="{{ route('newscast.create') }}"和 NewscastController 后,控制器传递的$relations数组中有 26 个条目,并且在create.blade 中的for_stations数组——两者的内容应该是相同的。
标签: laravel laravel-5.4