简体   繁体   English

在将变量从控制器传递到视图时,在Laravel 5中获取未定义的变量

[英]Getting undefined variable in Laravel 5 when passing variable from controller to view

I'm unable to pass my controller variable $sickLeaves to my view, which is reached via index.blade.php of my SickLeaveController (which is a RESTful resource controller). 我无法将我的控制器变量$ sickLeaves传递给我的视图,这是通过我的SickLeaveController(它是一个RESTful资源控制器)的index.blade.php来实现的。 I keep getting the error: Undefined variable 'sickLeaves' 我一直收到错误:未定义的变量'sickLeaves'

Here is the routes.php: 这是routes.php:

Route::group(['middleware' => 'web'], function(){
    Route::auth();
    Route::get('/', 'HomeController@index');
    Route::get('auth/logout', 'Auth\AuthController@getLogout');
    Route::get('/home', 'HomeController@index');
    Route::resource('sickleaves','SickLeaveController');
});

Here is my SickLeaveController: 这是我的SickLeaveController:

class SickLeaveController extends Controller
{

public function index()
{

    $sickLeaves = SickLeave::all();

    return view('sickleaves.index')->with('sickleaves',$sickLeaves);
}


public function create()
{
    $users = User::pluck('name','id');

    return View::make('sickleaves.create')->with('sickleaves',$users);
}


public function store(Request $request)
{
    $this->validate($request, [
        'firstname' => 'required|max:255',
        'lastname' => 'required|max:255',
        'reason' => 'required|max:255',
        'startdate' => 'required',
        'status' => 'required',]);
}


public function show($id)
{
    $sickLeave = SickLeave::find($id);

    return View::make('sickleaves.show')->with('sickleaves',$sickLeave);
}


public function edit($id)
{
    $sickLeave = SickLeave::findOrFail($id);

    return View::make('sickleaves.edit')->with('sickleaves',$sickLeave);
}


public function update(Request $request, $id)
{
    //TODO
}


public function destroy($id)
{
    $sickLeave = SickLeave::findOrFail($id);
    $sickLeave->delete();

    Session::flash('Item successfully deleted');
    return redirect()->route('sickleave.index');
}
}

Here is the index.blade.php: 这是index.blade.php:

@foreach($sickLeaves as $sickLeave)
                <tr>
                    <td style="width: 8%">{{ $sickLeave->id }}</td>
                    <td style="width: 12%"><span class="fw-semi-bold">{{ $sickLeave->firstname }}</span></td>
                    <td style="width: 12%"><span class="fw-semi-bold">{{ $sickLeave->surname }}</span></td>
                    <td class="no-sort hidden-xs" style="width: 12%">{{ $sickLeave->reason }}</td>
                    <td class="hidden-xs">{{ $sickLeave->startdate }}</td>
                    <td class="hidden-xs">{{ $sickLeave->enddate }}</td>
                    <td class="no-sort">{{ $sickLeave->status }}</td>
                    <td class="no-sort"><div class="btn-group">
                            <button class="btn btn-inverse">Actions</button>
                            <button class="btn btn-inverse dropdown-toggle" data-toggle="dropdown">
                                <i class="fa fa-caret-down"></i>
                            </button>
                            <ul class="dropdown-menu">
                                <li><a href="{{ route('sickleaves.show', $sickLeave->id) }}">View Details</a></li>
                                <li><a href="{{ route('sickleaves.edit', $sickLeave->id) }}">Edit</a></li>
                                <li class="divider"></li>
                                <li><a href="#">Delete</a></li>
                            </ul>
                        </div>
                    </td>
                </tr>
                @endforeach

Use correct variable: 使用正确的变量:

@foreach($sickleaves as $sickLeave)

Also, remove web middleware if you're using 5.2.27 or later. 此外,如果您使用的是5.2.27或更高版本,请删除web中间件。

PHP variables are case sensitive! PHP变量区分大小写!

You passing sickleaves , but in view You are trying to get sickLeaves , that is the problem. 你通过了sickleaves ,但在视野中你正试图sickLeaves ,这就是问题所在。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Laravel 5.4-未定义变量:将变量从控制器传递到视图 - Laravel 5.4 - Undefined variable: passing variable from controller to view 使用重定向/路由从控制器传递变量到视图-Laravel 5.2-获取未定义变量错误 - Passing variable from controller with redirect/ route to view- Laravel 5.2 - getting an undefined variable error 在 Laravel 5.4 中将数据变量传递到从控制器查看页面时未定义的变量数据 - undefined variable data when passing data variable to view page from controller in Laravel 5.4 我正在将变量 $input 从控制器传递给 laravel 中的视图,它在视图中显示错误未定义变量 $input - I am passing variable $input from controller to view in laravel and it shows an error undefined variable $input in View 测试Laravel控制器时视图中未定义的变量 - Undefined variable in view when testing Laravel controller 传递变量以从控制器查看laravel - Passing variable to view laravel from controller Laravel 5从控制器传递变量到视图 - Laravel 5 Passing a variable from controller to view 将变量传递给Laravel 4中不同控制器的视图 - Passing a variable to a view from a different controller in Laravel 4 在Laravel 5中将计数器变量从控制器传递到View - Passing counter variable from controller to View in laravel 5 将变量从控制器传递到视图 - Laravel - Passing variable from controller to view - Laravel
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM