错误:laravel 视图中未定义的变量
Posted
技术标签:
【中文标题】错误:laravel 视图中未定义的变量【英文标题】:Error : undefined variable in laravel view 【发布时间】:2017-01-23 15:05:21 【问题描述】:我收到此错误:未定义的变量。我阅读了很多关于它的帖子,但是没有一个对我面临的问题有帮助。 (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'));
提交.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' 的外键
【问题讨论】:
您的 Project_Controller(如发布)已损坏 php。你在结束方法create()
之前开始方法store()
【参考方案1】:
返回视图时,还应该将变量与数据一起传递:
$arrondissement = ....
return view('/submit', compact('arrondissement'));
【讨论】:
我已经在'create'方法中做了...我试过了,但还是不行 @Naj 你还在store
方法和路由文件的闭包中加载视图。
我不明白,我不应该在商店中加载视图?
@Naj 你可以重定向用户,比如return redirect()->back()
。但是,如果您加载了一个适用于某些变量的视图,则这些变量不应为空。或者,您可以检查变量是否为空,例如 @if (!empty($arrondissement)) do some stuff with data @endif
请查看我编辑的帖子,我添加了@if 和其他,我还将一些数据插入到数据库中的“arrondissements”表中【参考方案2】:
我解决了这个问题。这很简单,我必须删除感叹号。因为,我需要测试该值是否为空而不是非空。
【讨论】:
【参考方案3】:$arrondissement = Arrondissements::pluck('arrondissement', 'id');
您还应该将此行添加到 store 函数中
【讨论】:
以上是关于错误:laravel 视图中未定义的变量的主要内容,如果未能解决你的问题,请参考以下文章