在laravel的控制器中注入模型和返回值'with'关系

Nit*_*mar 0 laravel laravel-5 laravel-5.7

我正在尝试在其上构建应用程序Laravel,我想知道我们是否可以with在将模型注入控制器函数时使用关系,例如:

我有一个名为的模型Stream,我有一个名为Standard. Standard属于Stream所以我的代码看起来像:

class Standard extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $guarded = [];

    public function stream()
    {
        return $this->belongsTo('Models\Stream', 'stream_id', 'id');
    }
}
Run Code Online (Sandbox Code Playgroud)

现在在我的StandardController以下功能中显示模型:

public function show(Standard $standard)
{
    return response()->json(['data' => $standard], 200);
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用,return response()->json(['data' => $standard->with('stream')], 200);但它没有相应地工作。有人可以建议我如何在这种情况下执行。

谢谢。

Rwd*_*Rwd 5

with()用于您最初获得模型的时间。如果您已经拥有模型,则可以改用load(). 这称为延迟预加载

public function show(Standard $standard)
{
    $standard->load('stream');

    return response()->json(['data' => $standard], 200);
} 
Run Code Online (Sandbox Code Playgroud)