Laravel:未定义的变量内容

时间:2015-01-21 19:15:42

标签: php laravel-4 laravel-routing

我已设置Route

Route::resource('conferences', 'ConferencesController)

Artisan因此向我展示了一条路线:

POST conferences | conferences.store | ConferencesController@store

当我从Form视图提交create时,我收到错误,即我的布局文件中的变量尚未定义。 显示Undefined variable: content,没有发布任何内容。

我打开了这样的表格:

{{ Form::open(array('url' => '/conferences', 'class' => 'conference-form')) }}

最后,store中的ConferencesController方法如下所示:

public function store()
{
    $validator = Validator::make(Input::all(), Conference::$rules);

    if($validator->passes()){
        $conference = new Conference();
        $conference->title = Input::get('title');
        $conference->description = Input::get('description');
        $conference->location = Input::get('location');
        $conference->plannedTime = Input::get('plannedTime');
        $conference->save();

        Mail::pretend();
        Mail::send('emails.conference.create', ['title' => Input::get('title'), 'location' => Input::get('location'), 'plannedTime' => Input::get('plannedTime')], function($message){
            $message->to('email')->subject('Een nieuw evenement is gemaakt.');
        });

        Redirect::to('/conferences')->with('message', 'Nieuw event is aangemaakt!');
    } else {
        Redirect::to('/')->with('message', 'Iets ging mis');
    }
}

如何解决此错误?

**编辑:添加了创建方法**

public function create(){
    $this->layout->content = View::make('conferences.create');
}

1 个答案:

答案 0 :(得分:0)

这应该是非常直截了当的。在您的views目录中,我们通常有一个名为layouts的文件夹,我们将页面结构放在:

// default.blade.php
<html>
 <head> </head>
 <body>
   @yield('content'); // this is where your views will be loaded
 </body>
</html>

然后在你的情况下你应该创建一个会议文件夹,然后在其中创建一个文件create.blade.php。

@extends('layouts.default')
@section('content')
  // your forms etc
@stop

在ConferencesController里面的create方法

public function create() {
 return View::make('conferences.create');
}

最后一件事,当你尝试发送电子邮件时,你应该在to()函数内传递一个电子邮件地址,并且你传递一个字符串