は、次のように私は私のモデルが定義されている(PS:私は、このモデルクラスで使用したビューの主キーは、次のとおりです。vwAlarmActionSummaryYFUserSite)プライマリキーを持たないモデルの生のクエリにIDを渡す方法はありますか?
class Alarm extends Model
{
protected $table = 'vwAlarmActionSummaryYFUserSite';
public $timestamps = false ;
public function scopeActiveAlarms($query)
{
return $query->whereDate('AlarmClearedUTCDateTime', '=', '9999-12-31 23:59:59.9999999');
}
public function alarmActionDescription()
{
$rec = \DB::table('vwAlarmActionSummary')
->where('AlarmId', '=', $this->AlarmId);
return $rec;
}
}
イムのようなモデルの上に呼び出します。
$alarm = Alarm::where('AlarmId', $id)->where('yfUserID', $yfUserID)->firstOrFail();
ここでは、alarmActionDescription()
メソッドでこの例外を取得しています。
(1/2) LogicException
Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation
in HasAttributes.php (line 403)
at Model->getRelationshipFromMethod('AlarmActionDescription')
in HasAttributes.php (line 386)
at Model->getRelationValue('AlarmActionDescription')
in HasAttributes.php (line 316)
私は私が私のコントローラから$id
として渡されAlarmId
を、渡しているそのため、vwAlarmActionSummary
テーブルから行を返したいです。
ここで何が間違っていますか? alarmActionDescription()
メソッドを変更してAlarmId
に基づいて行を返すにはどうすればよいですか?
あなたは私たちにあなたがalarmActionDescriptionを() – Wreigh
@Wreigh、私は$警報のような私の質問に指摘したように、私のモデルを呼び出すイム=アラーム::(使用しているコードを表示することができます'AlarmId'、$ id) - >ここで( 'yfUserID'、$ yfUserID) - > firstOrFail();私は、$ alarmがalarmActionDescription()メソッドの情報を含む行を返すことを期待しています。 – Ratha
はい、どこでどのように 'alarmActionDescription()'メソッドを呼び出していますか? – Wreigh