错误: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()-&gt;back()。但是,如果您加载了一个适用于某些变量的视图,则这些变量不应为空。或者,您可以检查变量是否为空,例如 @if (!empty($arrondissement)) do some stuff with data @endif 请查看我编辑的帖子,我添加了@if 和其他,我还将一些数据插入到数据库中的“arrondissements”表中【参考方案2】:

我解决了这个问题。这很简单,我必须删除感叹号。因为,我需要测试该值是否为空而不是非空。

【讨论】:

【参考方案3】:
$arrondissement = Arrondissements::pluck('arrondissement', 'id');

您还应该将此行添加到 store 函数中

【讨论】:

以上是关于错误:laravel 视图中未定义的变量的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7:foreach 循环中未定义的变量

laravel刀片视图中的变量未定义错误

Laravel 中未显示的部门

未定义的变量:Laravel中的错误

Laravel 8 中未定义命名路由

视图laravel内部未定义的变量