php 在Laravel中,页面标题返回数组数据而不是特定的数据

cgvd09ve  于 2023-08-02  发布在  PHP
关注(0)|答案(3)|浏览(114)

我无法通过表之间的关系显示Hunter的名称,它返回的是结果数组。
这让我

View reward of <?php echo e({"id":4, "name_hunter":"Gon Freecss"...})

字符串
我想

View reward of Gon Freecss

HunterController.php

public function show($id)
{
    $rewarded = RewardedModel::find($id);
    $hunter = HunterModel::select('_id', 'name_hunter')->get();
    $reward = RewardModel::select('_id', 'description_reward')->get();
    return view('rewarded.view', compact(['rewarded', 'reward', 'hunter']));
}

view.php

@section('title', "View reward of {{ $rewarded->hunter->name_hunter }}")


我该怎么解决这个问题?

pvabu6sv

pvabu6sv1#

任何时候你想要一个单一的结果,使用->first(),而不是->get()
因此,$hunter = HunterModel::select('_id', 'name_hunter')->get();应该是$hunter = HunterModel::select('_id', 'name_hunter')->first();,对于任何其他数据都是一样的。
->get返回一个数据集合(即使它找到或得到了一个结果),->first将返回一个对象(一个模型,但在您的情况下是Std),因此这将修复它。

public function show($id)
{
    $rewarded = RewardedModel::find($id);
    $hunter = HunterModel::select('_id', 'name_hunter')->first();
    $reward = RewardModel::select('_id', 'description_reward')->first();

    return view('rewarded.view', compact(['rewarded', 'reward', 'hunter']));
}

字符串
阅读有关->first->get的文档

1u4esq0p

1u4esq0p2#

我认为你对compact()的使用是不正确的。
而不是:

return view('rewarded.view', compact(['rewarded', 'reward', 'hunter']));

字符串
试试这个:

return view('rewarded.view', compact('rewarded', 'reward', 'hunter'));

e4eetjau

e4eetjau3#

这样我就能解决问题了。

public function show($id)
{
    $rewarded = RewardedModel::find($id);
    $hunter = HunterModel::select('_id', 'name_hunter')->first();
    $reward = RewardModel::select('_id', 'description_reward')->first();
    $name = HunterModel::where('_id', '=', $id)->value('name_hunter');
    return view('rewarded.view', compact(['rewarded', 'reward', 'hunter', 'name']));
}

个字符

相关问题