次の 10 月の CMS プラグイン モデルがあるとします。
Schema::create('iaff106_cellphone_cellphones', function($table){
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned()->nullable()->index();
$table->string('label');
$table->string('phone')->nullable()->index();
$table->integer('provider_id')->nullable();
$table->boolean('is_txtable')->default(true);
$table->boolean('is_published')->default(false);
$table->timestamps();
});
Schema::create('iaff106_cellphone_providers', function($table){
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('name');
$table->string('slug')->index();
$table->string('mail_domain')->nullable();
$table->timestamps();
});
プロバイダーとの関係:
public $belongsToMany = ['IAFF106\CellPhone\Models\Cellphone', 'foreignKey' => 'provider_id'];
携帯電話の関係:
public $hasOne = ['IAFF106\CellPhone\Models\Provider'];
「電話」と「名前」フィールドを取得するために、携帯電話と関連するサービス プロバイダーを選択したいと考えています。
私のコンポーネントで試しました:
public function onRun()
{
$this->cellphone = $this->page['cellphone'] = $this->loadCell();
}
protected function loadCell()
{
$slug = $this->propertyOrParam('idParam');
$cellphone = Cellphone::isPublished()->where('id', '=', $slug)->first();
$this->provider = $this->page['provider'] = $cellphone->provider;
return $cellphone;
}
$this->cellphone には必要な電話データがありますが、プロバイダーの「名前」情報にアクセスする方法がわかりません。
ビュー内の両方のモデルからデータを読み込んでアクセスするにはどうすればよいですか?
私は私の見解でこれを試しました:
<ul>
<li>{{ cellphone.phone }} {{ provider.name }} </li>
<li>Try Again </li>
<li>{{ cellphone.phone }} {{ cellphone.provider.name }} </li>
</ul>
{{ cellphone.phone }} は正常に表示されますが、プロバイダー名を取得できません。