2016-03-10 2 views
1

я иметь следующую таблицу по продаже билетовсамостоятельной регистрации в Laravel 5.2

if(!Schema::hasTable('tblticket')) { 
    Schema::create('tblticket', function (Blueprint $table) { 
     $table->increments('TicketID'); 
     $table->string('Subject', 50); 
     $table->integer('ParentTicketID')->nullable()->unsigned(); 
     $table->timestamps(); 

     $table->foreign('ParentTicketID')->references('TicketID')->on('tblticket'); 
    }); 
} 

Первичный ключ является TicketID и Существует еще один столбец называется ParentTicketID, что связано с TicketID.

Ниже Модель билета

class TicketModel extends Model 
{ 
    public $table = 'tblticket'; 
    public $primaryKey = 'TicketID'; 
    public $timestamps = true; 

    public function TicketReplies() { 
     return $this->belongsTo('\App\Models\TicketModel', 'TicketID'); 
    } 
} 

Ниже мой запрос

$Ticket = \App\Models\TicketModel 
    ::with('TicketReplies') 
    ->where('ParentTicketID', '=', $TicketID) 
    ->first(); 

Я пытаюсь получить все дочерние билеты билета. но я получаю null.

Не могли бы вы посоветовать, если мне что-то не хватает.

ответ

4

это мой пример код, вы можете попробовать это, я надеюсь, что поможет вам

/*--------------------------------------------------------- 
* Relationship with same table, means recursive key 
* -------------------------------------------------------- 
*/ 


//this will get the childern against parent. 

public function doseage_childs(){ 
    return $this->hasMany('App\Models\DoseageForm', 'parent_id', 'id'); 
} 


//this will get the parent against childern 

public function doseage_parent(){ 
    return $this->belongsTo('App\Models\DoseageForm', 'parent_id', 'id'); 
} 

Отредактировано

обновления вашего этого метода

public function TicketReplies() { 
    return $this->belongsTo('\App\Models\TicketModel', 'TicketID'); 
} 

как этот

public function TicketReplies() { 
    return $this->hasMany('\App\Models\TicketModel','ParentTicketID' ,'TicketID'); 
} 

и обновите свою модель запроса, так как вы уже получаете отношения TicketReplies.

$Ticket = \App\Models\TicketModel 
    ::with('TicketReplies') 
    ->where('TicketID', '=', $TicketID) 
    ->first(); 

Вы отношения будут произведения затем

Смежные вопросы