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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案
{{ $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年前 评论

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