Laravel PHP: создание объекта по умолчанию из пустого значения ошибки

0

Я использую контроллер для вызова формы, определенной в одном из моих представлений. Внутри контроллера у меня есть простой метод create(), который я просто хочу использовать для вызова формы при использовании модели "Видео", которую я определил. Проблема в том, что когда я пытаюсь вызвать эту функцию, я продолжаю получать ошибку "Создание объекта по умолчанию из пустого значения".

Контроллер (приложение\VideosController.php):

 <?php 

use Acme\repositories\VideoRepository;

use Models\Video;

use Models\Validators as Validators;

class VideosController extends BaseController {

/**
 * The video model
 *
 * @var \Models\Video
 **/
protected $video;


/*  The value defined from my repository
*/

protected $videoRepo;

/**
 * Instantiate the controller
 *
 * @param Models\Video $video
 * @return void
 **/

   public function __construct(VideoRepository $videoRepo)
   {
     $this->videoRepo = $videoRepo;
     /* Old code below 
     $this->video = \App::make('Repositories\VideoRepository');
     */
   }

/* Create a new video by passing in a sub view
Of the form for creating a new video */

   public function create()
   {
    $data = array('type' => 'video');
    $this->layout->content = \View::make('forms.new-video', $data);
   }

}

Модель (приложение/модель/video.php):

<?php


class Video extends Eloquent {

    /**
     * The table used by this model
     *
     * @var string
     **/
    protected $table = 'videos';

    /**
     * The primary key
     *
     * @var string
     **/
    protected $primaryKey = 'video_id';

    /**
     * The fields that are guarded cannot be mass assigned
     *
     * @var array
     **/
    protected $guarded = array();

    /**
    *  Enabling soft deleting
    *
    *  @var boolean
    **/
     protected $softDelete = true;


    }

Представление для моей формы расположено в ' app\views\forms\new-video.blade.php '.

Я не определяю свой метод "create()" правильно или не помещаю файлы в их правильное местоположение?

Теги:
laravel-4

1 ответ

1
Лучший ответ

Я считаю, что вам не хватает объявления свойства $layout в вашем контроллере, поэтому он понятия не имеет, какое представление использовать в качестве шаблона:

/**
 * The layout that should be used for responses.
 */
protected $layout = 'layouts.master';

См. Http://laravel.com/docs/4.2/templates#controller-layouts.

  • 0
    Это сделало трюк! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню