2013-12-23 82 views
0

這是場景!Laravel 4 Eloquent ORM - Symfony Component Debug Exception FatalErrorException無法重新聲明類WorkProcess

模式爲(work_processes

Schema::create('work_processes', function($table){ 
    $table->increments('id'); 
    $table->enum('wp_type',array('M','F','D')); //M => Maintenance, F => Field, D => Drilling 
    $table->string('wp_name',50); 
    $table->integer('wp_owner_id'); 
    $table->integer('wp_editor_id'); 
    $table->text('wp_link'); 
    $table->enum('wp_frequency',array('B','M','Q')); //B => Bi-Monthly, M => Monthly, Q => Quarterly 
    $table->date('wp_startdate'); 
    $table->date('wp_enddate'); 
    $table->enum('wp_active',array('Y','N')); 
    $table->timestamp('deleted_at')->nullable(); 
    $table->timestamps(); 
});} 

模式爲(wp_audit_questions

Schema::create('wp_audit_questions', function($table){ 
    $table->increments('id'); 
    $table->integer('wp_id'); 
    $table->text('wp_audit_question'); 
    $table->timestamps(); 
}); 

模型1(WorkProcess

class WorkProcess extends Eloquent 
{ 
    protected $table = 'work_processes'; 
    protected $guarded = array('id'); 
    protected $softDelete = true; 

    public function wpauditquestions() 
    { 
     return $this->hasMany('WpAuditQuestion'); 
    } 
} 

模型2作爲(WpAuditQuestion

class WpAuditQuestion extends Eloquent 
{ 
    protected $table = 'wp_audit_questions'; 
    public function workprocess() 
    { 
     return $this->belongsTo('WorkProcess', 'wp_id'); 
    } 
} 

'控制器(WorkProcessController

class WorkProcessController extends BaseController 
{ 
    public function ShowWpAuditQuestionEditForm($wpid) 
    { 
     $wp = WorkProcess::with(array('wpauditquestions' => function($query){ 
      $query->where('wp_id', $wpid); 
     }))->get(); 
     return View::make('wpauditquestion')->with(array('edit_mode' => 1, 'wpauditquestion' => $wpauditquestion)); 
    } 
} 

' 控制器(WpAuditQuestionController

class WpAuditQuestionController extends BaseController 
{ 
    public function ShowWPAuditQuestionForm() 
    { 
     $wpauditquestion = new WpAuditQuestion(); 
       return View::make('wpauditquestion', compact('wpauditquestion')); 
    } 
} 

routes.php文件

//model binding 
Route::model('workprocess', 'WorkProcess'); 
Route::model('wpauditquestion', 'WpAuditQuestion'); 

Route::get('wpauditquestion/edit/{wpid}', array('uses' => '[email protected]', 'as' => 'wpauditquestion.edit')); 

問題:

此腳本生成該錯誤消息。例如MY_SERVER/wpauditquestion /編輯/ 1

的Symfony \分量\調試\異常\ FatalErrorException
不能重新聲明類WorkProcess

然而,當我不使用get()或任何其他方法像paginate(5)等,它確實轉儲了一些數據。

我也試過這個,但結果相同。

$wp = WorkProcess::has('wpauditquestions')->get(); 

有人可以請指導我我在做什麼錯。我在WAMP上使用laravel 4.0.7。

另請指導​​我如何在編輯後保存此模型,例如如果我有這樣的表格。

{{ Form::open(array('action' => '[email protected]', 'method' => 'put')) }} 
{{-- Work Process Name --}} 
{{ Form::hidden('wp_id') }} 
<ol> 
@for($i = 0; $i < 5; $i++) 
    <p> 
     <li> 
      {{ Form::label('wp_audit_question', 'Audit Question') }} 
      {{ Form::text('wp_audit_question', Input::old('wp_audit_question')) }} 
    </p> 
@endfor 
</ul> 
<p>{{ Form::submit('Submit Form', array('id' => 'Submit_Form')) }}</p> 
{{ Form::close() }} 

感謝和問候

回答

0

問題已解決!問題是模型名稱'工作進程'與某些事情衝突,因爲我的視圖名稱爲'workprocess.blade。php'。因此,我將模型名稱更改爲'WPModel',現在工作正常。

0

你的名字把變成WorkProcess遷移work_process?這可能是因爲您的遷移與您的模型具有相同的類名。

+0

smartman,不,遷移就像它是***工作流程***。這就是爲什麼我已經將這條線添加到模型*** WorkProcess *** *** protected $ table ='work_processes'; *** – GoharSahi

0

如果您做了類似更改類名稱的操作。

比方說,你從「users」改變你的模型類的名稱爲「user」,

你可以嘗試運行命令「composer dump-autoload」。

它爲我工作,雖然我的情況是不完全一樣的你。

相關問題