想问一下 我要在控制层怎么写才能在控制层里查询到我在model层写的数据
这是model层的代码 不会写控制器中的
<?php
namespace App\Model\model;
use DB;
class modelData{
public function change($type, $data) {
$dataSets = [
["X_data" => ["TK5-01","TK5-02","TK5-03","TK5-04","TK5-05"]],
["X_data" => ["TK5-06","TK5-07","TK5-08","TK5-09","TK5-10"]],
["X_data" => ["TK5-11","TK5-12","TK5-13","TK5-14"]],
["X_data" => ["TK5-15","TK5-16"]],
["X_data" => ["TK5-17","TK5-18"]],
["X_data" => ["TK5-19"]]
]; //X轴数据
$Y_data = [];
foreach ($dataSets as $key => $dataSet) {
$X_data[] = $dataSet["X_data"];
foreach ($dataSets as $k => $value) {
$result = DB::table('instruments_tuokong')->select('cumulative')->orderBy('create_time', 'desc')->where('code', $value)->first();
$Y_data[$key][] = $result->cumulative;
}
}
//var_dump($X_data,$Y_data);
return [$X_data,$Y_data];
$instruments = ['TK5-01', 'TK5-02', 'TK5-03', 'TK5-04', 'TK5-05', 'TK5-06', 'TK5-07', 'TK5-08', 'TK5-09', 'TK5-10', 'TK5-11', 'TK5-12', 'TK5-13', 'TK5-14', 'TK5-15', 'TK5-16', 'TK5-17', 'TK5-18', 'TK5-19'];
$numbers = [1, 2, 3, 4, 5, 6];
$data = [];
foreach ($instruments as $instrument) {
$instrumentData = [];
foreach ($numbers as $number) {
$result = DB::table('instruments_tuokong')->select('variation')->where('code', '=', $instrument)->whereIn('number', [$number])->get();
$instrumentData[] = $result[0]->variation;
}
$data[] = $instrumentData;
}
return [$data];
}
}
总共要查询两次
该回答引用ChatGPT4与博主@晓码自在合作编写:
在控制层(Controller)中,你可以像下面这样查询Model层的数据:
php
namespace App\Http\Controllers;
use App\Model\modelData;
class DataController extends Controller
{
public function index()
{
$modelData = new modelData();
// 第一次查询
$result1 = $modelData->change('type1', 'data1');
$X_data = $result1[0];
$Y_data = $result1[1];
// 第二次查询
$result2 = $modelData->change('type2', 'data2');
$data = $result2[0];
// 在控制层使用查询到的数据
// ...
}
}
根据Model层modelData类的change方法,我们知道它会进行两次数据库查询,返回两组数据:
第一次查询返回 $X_data 和 $Y_data 数组;
第二次查询返回 $data 二维数组。
所以在Controller中,我们实例化modelData类,调用它的change方法进行查询,获取返回的数据,然后就可以在控制层使用这些数据了。
在控制层查询Model层的数据,主要就是:
Model层进行数据查询和处理,将结果返回给控制层,控制层再使用这些数据,这就是MVC的工作模式。