[Laravel] with関数使いどころ

ITLaravel, PHP

Laravel で開発していて viewに値を返す時によくcompact関数を使っています。

public function edit($id)
{
    $channel = Channel::find($id);
    return view('channels.edit', compact('channel'));
}

と、書いていて、

連想配列を使って返す時は、、、

public function edit($id)
{
    $channel = Channel::find($id);
    return view('channels.edit', ['channel'=>$channel]);
}

with関数を使う時は、、、

public function edit($id)
{
    $channel = Channel::find($id);
    return view('channels.edit')->with('channel', $channel);
}

と、書いていました。

連想配列はともかく、with関数はいらんよね?とずっと思っていました。

ですが、先日某プロジェクトで、、、

public function edit($id)
{
    return view('channels.edit')->with('channel', Channel::find($id));
}

と、書いてる箇所を見つけまして、、、

あ、Eloquentを直接放り込めるのね。と目からウロコが落ちました。

ちなみに連想配列の値に直接Eloquentを書いても、動きました。

public function edit($id)
{
    return view('channels.edit', ['channel' => Channel::find($id)]);
}

現場からは以上です。

[検証環境]
Laravel 5.7.16
PHP 7.2.4

スポンサーリンク

Posted by nobuhiro harada