2013-06-17 2 views
1

Laravel 4 프레임 워크를 사용하여 이벤트 관리자에서 작업 중이며 /app/models/Event.php에 새 모델을 만들었습니다. 이 파일에는 메소드 public function postCreateEvent($eventDetails)이 있습니다. 오류가 발생했습니다 (Call to undefined method Illuminate\Events\Dispatcher::postCreateEvent()). 누구라도 Laravel 4가 모델에서 기능을 찾지 못하는 이유를 파악할 수 있습니까?Laravel 4 모델 클래스 기능을 제대로 찾을 수 없습니다.

/app/controllers/Events/Controllers/Manager/ManagerController.php은 다음과 같습니다

<?php 

namespace Events\Controllers\Manager; 

use \View, \BaseController, \Site, \Event, \Input; 

class ManagerController extends BaseController 
{ 
//This control ensures the user is logged in before they can view any of the manager pages or use the manager actions 
public function __construct() 
{ 
    $this->beforeFilter('auth'); 
} 

//This control gets the correct manager page and displays it 
public function getManager($nav = null) 
{ 
    if ($nav == null) 
    { 
     return View::make('manager'); 
    } 
    else 
    { 
     return View::make('manager/'.$nav); 
    } 
} 

//This control takes the site settings page when it is POSTed and moves it to the model to update the site settings. 
public function postSiteSettings() 
{ 
    $siteSettings = array(
     'siteTitle' => Input::get('siteTitle'), 
     'siteAddress' => Input::get('siteAddress'), 
     'adminEmail' => Input::get('adminEmail'), 
     'openRegistrations' => Input::get('openRegistrations') 
    ); 

    Site::postSiteSettings($siteSettings); 

    return View::make('manager/settings'); 
} 

public function postCreateEvent() 
{ 
    $eventDetails = array(
     'eventCalendar'   => Input::get('siteTitle'), 
     'eventName'    => Input::get('eventName'), 
     'eventDescription'  => Input::get('eventDescription'), 
     'eventCapacity'   => Input::get('eventCapacity'), 
     'eventRegistrationType' => Input::get('eventRegistrationType'), 
     'eventLocationName'  => Input::get('eventLocationName'), 
     'eventLocationAddress1' => Input::get('eventLocationAddress1'), 
     'eventLocationAddress2' => Input::get('eventLocationAddress2'), 
     'eventLocationAddress3' => Input::get('eventLocationAddress3'), 
     'eventLocationCity'  => Input::get('eventLocationCity'), 
     'eventLocationState' => Input::get('eventLocationState'), 
     'eventLocationZIP'  => Input::get('eventLocationZIP'), 
     'eventLocationCountry' => Input::get('eventLocationCountry'), 
     'eventLocationPhone' => Input::get('eventLocationPhone'), 
     'eventStartDate'  => Input::get('eventStartDate'), 
     'eventEndDate'   => Input::get('eventEndDate'), 
     'eventStartTime'  => Input::get('eventStartTime'), 
     'eventEndTime'   => Input::get('eventEndTime'), 
     'eventRSVPEndDate'  => Input::get('eventRSVPEndDate'), 
     'eventPublishDate'  => Input::get('eventPublishDate'), 
     'eventArchiveDate'  => Input::get('eventArchiveDate') 
    ); 

    $event = new Event; 
    if (Event::postCreateEvent($eventDetails)) 
    { 
     return View::make('manager/createEvent'); 
    } 
    else 
    { 
     echo "WTF...."; 
    } 
} 
} 

/app/models/Event.php은 다음과 같습니다

<?php 

class Event extends Eloquent { 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'events'; 

/** 
* Add New Event To The Database 
* 
* @param array 
* @return booelan 
*/ 
public function postCreateEvent($eventDetails) 
{ 
    $event = new Event; 
    $event->eventCalendar   = $eventDetails['eventCalendar']; 
    $event->eventName    = $eventDetails['eventName']; 
    $event->eventDescription  = $eventDetails['eventDescription']; 
    $event->eventCapacity   = $eventDetails['eventCapacity']; 
    $event->eventRegistrationType = $eventDetails['eventRegistrationType']; 
    $event->eventLocationName  = $eventDetails['eventLocationName']; 
    $event->eventLocationAddress1 = $eventDetails['eventLocationAddress1']; 
    $event->eventLocationAddress2 = $eventDetails['eventLocationAddress2']; 
    $event->eventLocationAddress3 = $eventDetails['eventLocationAddress3']; 
    $event->eventLocationCity  = $eventDetails['eventLocationCity']; 
    $event->eventLocationState  = $eventDetails['eventLocationState']; 
    $event->eventLocationZIP  = $eventDetails['eventLocationZIP']; 
    $event->eventLocationCountry = $eventDetails['eventLocationCountry']; 
    $event->eventLocationPhone  = $eventDetails['eventLocationPhone']; 
    $event->eventStartDate   = $eventDetails['eventStartDate']; 
    $event->eventEndDate   = $eventDetails['eventEndDate']; 
    $event->eventStartTime   = $eventDetails['eventStartTime']; 
    $event->eventEndTime   = $eventDetails['eventEndTime']; 
    $event->eventRSVPEndDate  = $eventDetails['eventRSVPEndDate']; 
    $event->eventPublishDate  = $eventDetails['eventPublishDate']; 
    $event->eventArchiveDate  = $eventDetails['eventArchiveDate']; 
    $event->created_at    = date('Y-m-d H:i:s'); 
    $event->updated_at    = date('Y-m-d H:i:s'); 

    if ($event->save()) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

public static function test() 
{ 
    echo "True"; 
} 
} 

사람은 이유를 볼 수 Laravel 4는 모델에서 함수를 찾지 못합니까?

답변

2

클래스 Event 이미 프레임 워크에 존재하고 당신이 그래서 프레임 워크의 Event 클래스에 postCreateEvent 메소드를 호출하려고

Event::postCreateEvent($eventDetails) 

에서 부르는하지만 그 방법은 존재하지 않습니다.

클래스 이름이 도움이되면 다른 이름으로 변경해보십시오.

+0

그게 전부입니다. 감사! – kkirsche

관련 문제