php - 如何使用 PHP 和 Laravel 使视图文件中的代码更清晰?
问题描述
我试图使用 PHP 和 Laravel 显示 MySQL 数据库的结果。
这是我的控制器代码
public function index()
{
$assessments = DB::table('assessments')
->join('questions', 'questions.assessment_id', '=', 'assessments.id')
->join('answers', 'answers.question_id', '=', 'questions.id')
->select('*')
->get();
return view('assessment_submission.index', ['resultSQL' => $assessments]);
}
控制器代码为我工作。下面的代码是我的看法:
@foreach($resultSQL as $row)
<div class="card" style="">
<div class="card-body">
<h5 class="card-title">{!! $row->assesment_name !!}</h5>
<h5 class="card-title">{!! $row->question !!}</h5>
<h5 class="card-title">{!! $row->answer !!}</h5>
</div>
</div>
@endforeach
但是我需要使用此代码创建一个选择元素,并且我稍微更改了代码以便能够做到这一点。
所以,我修改了控制器:
public function index()
{
$assessments = DB::table('assessments')
->join('questions', 'questions.assessment_id', '=', 'assessments.id')
->join('answers', 'answers.question_id', '=', 'questions.id')
//->join('answers')
->select('*')
->get();
$resultado_json = json_decode(json_encode($assessments), true);
$resultado_em_pedacos = array_chunk($resultado_json, 4);
return view('assessment_submission.index', ['resultSQL' => $assessments, 'resultado_em_pedacos' => $resultado_em_pedacos ]);
}
我更改了显示结果的视图部分:
@for ($i = 0; $i < count($resultado_em_pedacos); $i++)
<p>
{!! $resultado_em_pedacos[$i][0]["question_content"] !!}
<select name="{{$i}}" id="{{$i}}">
@for ($j = 0; $j < count($resultado_em_pedacos[0]); $j++)
<option value="volvo">{!! $resultado_em_pedacos[$i][$j]["answer_text"] !!}</option>
@endfor
</select>
</p>
@endfor
所有代码都在工作,但我认为视图文件(index.blade.php)不干净。
我怎样才能使这段代码更干净?
解决方案
如果您整理缩进并foreach
改为使用,您的视图代码将变得更具可读性。
@foreach ($resultado_em_pedacos as $resultado_em_pedaco)
<p>
{!! $resultado_em_pedaco[0]["question_content"] !!}
<select name="{{$i}}" id="{{$i}}">
@foreach ($resultado_em_pedaco as $resultado)
<option value="volvo">
{!! $resultado["answer_text"] !!}
</option>
@endforeach
</select>
</p>
@endforeach
我使用的变量名可能不正确,我不会说西班牙语。
推荐阅读
- javascript - 屏幕上的 Javascript 触发器(进度条)
- transpiler - 为转译而构建的抽象(编程)语言
- android - 在 Android 中如何使用 Java 添加内部图像?
- vue.js - 如何在 VueJS 中使用计算属性映射嵌套的 Vuelidate 验证对象?
- go - 如何有效地计算文件的校验和
- c# - .net core 3.1 身份不断强制用户在短时间内使用身份登录
- javascript - 将非嵌套 JSON 数组解析为 HTML 树视图?
- c - 使用 C 读取 4 字节整数 (Int32) 文件失败
- android - 如何使TextView在ScrollView中垂直填充空间?
- php - cartalyst/stripe-laravel Laravel 6.0:未定义 Stripe API 密钥