1
は、次のデータベース・スキームを検討し、中間テーブルを介してbelongsToのを取得:Laravelは
companies
-- id
-- name
logos
-- id
-- active
-- company_id
-- image_id
images
-- id
-- filename
-- path
-- type
その後、私はこのように定義されたモデルで関係を持っている:
Company.php
public function logos() {
return $this->hasMany('App\Models\Logo');
}
ロゴ.php
public function image() {
$this->belongsTo('App\Models\Image');
}
今、私はそのIDとそのロゴと画像をもとにして特定の会社を取得したいと考えています。だから私はこのようにそれを取得しようとしたが、それはエラーがスローされます。
Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation
CompanyController.phpに
public function show($id) {
$company = Company::findOrFail($id);
$requester = JWTAuth::parseToken()->toUser();
if(!$requester->hasRole('noc') && $requester->company_id != $company->id) {
return $this->response->errorUnauthorized("You have no rights to view this company profile.");
}
// I am trying to fetch it this way //
$company->logos;
foreach ($company->logos as $logo) {
return $logo->image;
}
return $this->response->array(compact('company'))->setStatusCode(200);
}
を誰も私を助けてもらえますか? :)ありがとう!
は動作しませんが、スロー:あなたは 'image'関係に' return'を追加するのを忘れたのでですnull'なので – user3216673
上のメンバ関数addEagerConstraintsに 'コール() 。 –
:Dはい、私はnoobです!ありがとう:)、私は6分であなたの答えを受け入れるでしょう:) – user3216673