0

シナリオはこちら!!!

( 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 as ( WorkProcess )

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

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

モデル 2 as ( WpAuditQuestion )

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

'Controller as ( 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));
    }
}

'Controller as ( 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' => 'WorkProcessController@ShowWpAuditQuestionEditForm', 'as' => 'wpauditquestion.edit'));

問題:

このスクリプトは、このエラー メッセージを生成します。例: MY_SERVER/wpauditquestion/edit/1

symfony\Component\Debug\Exception\FatalErrorException
クラスWorkProcessを再宣言できない

ただし、get() や paginate(5) などの他のメソッドを使用しないと、一部のデータがダンプされます。

私もこれを試しましたが、同じ結果です。

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

誰かが私が何をしているのか教えてください。WAMPでlaravel 4.0.7を使用しています。

また、このようなフォームがある場合など、編集後にこのモデルを保存する方法を教えてください。

{{ Form::open(array('action' => 'WorkProcessController@PostWorkProcessEditForm', '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() }}  

感謝と敬意

4

3 に答える 3

0

問題は解決された!問題は、ビュー名も「workprocess.blade.php」であるため、モデル名「WorkProcess」が何かと衝突していたことです。そのため、モデル名を「WPModel」に変更し、現在は正常に動作しています。

于 2013-12-28T08:34:17.430 に答える
0

WorkProcess に変換された移行 work_process に名前を付けましたか? 移行のクラス名がモデルと同じである可能性があります。

于 2013-12-23T12:37:31.413 に答える
0

クラス名の変更などを行った場合。

モデルのクラス名を ' users'から ' user'に変更したとします。

コマンド ' composer dump-autoload' を実行してみてください。

私のケースはあなたのケースとまったく同じではありませんでしたが、うまくいきました。

于 2014-10-27T11:20:27.997 に答える