多様な関係が私のユーザーテーブルとそのデータの間に設定されています。現時点ではそれは空に戻っています、なぜ私は分かりません。ユーザーがまったく同じセットアップを持っている、と私は現時点で代理コードをテストしていますので多対多の多対多リレーションシップが空になるのはなぜですか? Laravel 5.3
: 関係は少しこのようになります。
私は、代理店がタグ付けした各言語の言語表の言語の説明を呼び出そうとしています。このような何か:
public function compose(View $view) {
$loggedinagency = Auth::user()->id;
$agency = Agency::with('languages')->findOrFail($loggedinagency);
$view->with(compact('agency', 'loggedinagency'));
}
In the view blade:
<p> @foreach($agency->languages as $Lang)
{{ $Lang->description }}<br>
@endforeach</p>
Languageableモデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Languageable extends Model
{
protected $table = 'languageables';
protected $fillable = ['language_id','languageable_id', 'languageable_type'];
}
言語モデル:
<?php
namespace App;
use App\Agency;
use Illuminate\Database\Eloquent\Model;
class Language extends Model
{
protected $table = 'languages';
public function agencyies() {
return $this->morphedByMany('Agency', 'Languageable');
}
}
エージェンシーモデル:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use App\languageable;
use App\Language;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Agency extends Authenticatable
public function languages() {
return $this->morphToMany(Language::class, 'Languageable');
}
}
スキーマ:
languageables:
Schema::create('languageables', function (Blueprint $table){
$table->increments('id');
$table->integer('language_id');
$table->foreign('language_id')->references('id')->on('languages');
$table->integer('languageable_id');
$table->string('languageable_type', 31);
$table->timestamps();
});
言語:情報がそうのようなlanguageablesテーブルに格納されて
Schema::create('languages', function (Blueprint $table){
$table->increments('id');
$table->string('subcategory', 31);
$table->string('description', 127);
});
:
それは何も表示されません、といじくりに問い合わせます関係を持つモデル呼び出しをvar_dumpしようとするとnullを返します。私が逃した、または間違った何かがありますか?理論上はエラーがないので、うまくいくはずですが、おそらくlaravelはデータベース内の間違ったIDやデータポイントを探していますか?
編集:debugbarが実行されて次のクエリを示している。
select `languages`.*, `Languageables`.`Languageable_id` as `pivot_Languageable_id`, `Languageables`.`language_id` as `pivot_language_id` from `languages` inner join `Languageables` on `languages`.`id` = `Languageables`.`language_id` where `Languageables`.`Languageable_id` in ('196') and `Languageables`.`Languageable_type` = 'App\Agency'