我收到此错误:未定义的变量。我读了很多关于它的帖子,但是,他们都没有帮助解决我面临的问题。 (Why I get "Undefined variable" in Laravel view?)
这是Project_Controller:
class Project_Controller extends Controller
{
public function create()
{
$arrondissement = Arrondissements::pluck('arrondissement', 'id');
return view::make('projets.create', compact('arrondissement'));
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'intitule' => 'required|max:255',
'code' => 'required|max:255',
'dateDebut' => 'required|max:255',
'dateFin' => 'required|max:255',
'estimation' => 'required|max:255',
'arrondissement' => $request->arrondissement,
]);
if ($validator->fails()) {
return back()
->withInput()
->with(['arrondissement'=>$arrondissement])
->withErrors($validator);
}
$projet = new Projet;
$projet->intitule = $request->intitule;
$projet->code = $request->code;
$projet->dateDebut = $request->dateDebut;
$projet->dateFin = $request->dateFin;
$projet->estimation = $request->estimation;
$projet->arrondissement = $request->arrondissement;
$projet->save();
return view('/submit', compact('arrondissement'));
}
}
submit.blade.php:
<select name="arrondissement_id">
@if (!empty($arrondissement))
Whoops! Something went wrong
@else
@foreach($arrondissement as $id => $arrondissement)
<option value="{{$id}}">{{$arrondissement}}</option>
@endforeach
@endif
</select>
这是routes.php:
Auth::routes();
Route::get('/home', 'HomeController@index');
Route::get('/', function () {
$projets = \App\Projet::all();
return view('welcome', compact('projets'));
});
Route::get('/submit', function () {
return view('submit');
});
Route::post('submit/projects', 'Project_Controller@store');
我看不出是什么导致了这个错误?
我使用'arrondissement'作为表'arrondissements'的外键
答案 0 :(得分:2)
返回视图时,还应该使用data:
传递变量$arrondissement = ....
return view('/submit', compact('arrondissement'));
答案 1 :(得分:0)
我解决了这个问题。这很简单,我不得不删除感叹号。因为,我需要测试值是否为空而不是空。
答案 2 :(得分:-1)
$arrondissement = Arrondissements::pluck('arrondissement', 'id');
您还应该将此行添加到商店功能