2016-09-12 6 views
0

を渡します。 私は、2つのクラス、1他の拡張を作成しました:

あり
abstract class ActivityTimeline extends Model 

public function primary_person() 
{ 
    return $this->getPrimaryPerson($this->record); 
} 

「DDを:持って

$this->fields = [ 
    'owner_id', 
    'contact_name', 
    'mailing_label', 
    'source_id', 
    'source_raw', 
    'initial_referer_raw', 
    'primary_person', 
    'connections', 
]; 
foreach ($this->fields as $field) { 
    if (method_exists($this, $field)) { 
     dd('the method exists', $this, $field); 
     $timelineActivity[$field] = $this->{$field}(); 
    } 
} 

そして

class ContactActivity extends ActivityTimeline { 

を( '方法exi sts '、$ this、$ field); "次の値を返します。

文が合格、と私は呼んしようとし、この場合ところが

ContactActivity {#963▶}

"primary_person"

を "メソッドが存在します"私がちょうどその存在を確認した方法は、私は得る:

BadMethodCal Builder.phpライン2123でlException:未定義のメソッドを照らし\ Databaseへ コール\クエリー\ビルダー:: primary_person()

だから、私もDDかかわらず、ここでContactActivityオブジェクトで作業していないよと思われます私がいることを示しています。私が間違ったオブジェクトを取得するために間違っていることを誰でも知っていますか?

+0

Aは、私はちょうど持っていたと考えActivityTimelineクラスで

abstract function primary_person(); 

を追加してください。ゲームのこの時点で、私はまだContactActivityオブジェクトでsave()を行っていないので、これはおそらく起こっているでしょうか?もしそうなら、どのような方法でこのメソッドにアクセスできますか? –

答えて

0

親クラスから子メソッドを呼び出すためだと思います。

関連する問題