Laravel 前端读取数据,如果使用包含变量的字段名来查询,语法应该怎么写?请大家指点一下!

Laravel 前端读取数据,如果使用包含变量的字段名来查询,语法应该怎么写?例如下面的代码:

<p> {{ $school->classes->where('class_leavel',1)->first()->student_1_name }} </p>

如果 student_1_name 中的 1 ,用 $i 来代替,应该怎么写呢?
请大家指点一下思路!非常感谢!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案
{{ $school->classes->where('class_leavel',1)->first()->{'student_'.$i.'_name'} }}

这个方法可行,一个个试验出来的,哈哈!

4年前 评论
讨论数量: 3
mouyong

最近经常看到关于 $i 拼接字符串作为变量存在的问题。没有注意是不是同一个人。先提一下。你要考虑一下你的思考逻辑是否存在问题,为什么会想将 $i 这样的拼接到字符串中作为变量呢,不妨换个其他思路看看能不能解决你的问题。

再说你当前提的这个问题。需要用到拼接后的字符串。那么就需要有变量来容纳你要拼接的字符串。

在使用之前,先得到这个字符串即可。

@php 中可以写 php 代码。自行在其中拼接需要的字符串

Blade 模板《Laravel 6.0 中文文档》

@foreach($array as $i => $item)
    @php
    $variableName = "student_{$i}_name";
    // or $variableName = sprintf('student_%s_name', $i);
    @endphp
    {{-- n+1 问题,确定要这样做吗 --}}
    {{-- null 取属性报错可能发生,确定要这样做吗 --}}
    {{ $school->classes->where('class_leavel',1)->first()->{$variableName} }}
@endforeach
4年前 评论
HEPING (楼主) 4年前
HEPING (楼主) 4年前
mouyong (作者) 4年前

有这样的需求且实际与例子情况相同的话,建议先修改数据结构

4年前 评论
{{ $school->classes->where('class_leavel',1)->first()->{'student_'.$i.'_name'} }}

这个方法可行,一个个试验出来的,哈哈!

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!