【发布时间】:2017-05-16 09:21:56
【问题描述】:
我想锁定前三列:学生 id 、学校 id 和学生姓名,以便各自的老师只能添加在导出文件中获得的分数。我该怎么做?
public function actionStddetails(){
$api = new ApiRequest();
$session = Yii::$app->session;
$url = '/api/student/viewstudent';
$payload = "{'subject_id':'245','esd_id':'2','class_id':'5','qfe_id':'1','exam_id':'3','ref_id':'1','wac':'2','school_id':'2'}";
$url = '/api/examscore/studentlist';
$result = $api->request($url, $payload);
$stddtls = $result->Table1;
$csv_header='';
$csv_header .= 'Student id,'.'School id,'.'Student Name,'.'Marks Obtained,'."\n";
// loop over the rows, outputting them
$csv_row ='';
foreach ($stddtls as $stddtl){
$csv_row .= '"' . $stddtl->stud_id . '",'.'"' . $stddtl->school_id . '",'.'"' . $stddtl->stud_name. '",'."\n";
}
/* Download as CSV File */
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename=toy_csv.csv');
echo $csv_header . $csv_row;
}
【问题讨论】:
-
问题是……?
-
我想锁定前三列,即学生id,学校id,学生姓名。这样各自的老师只能添加导出文件中获得的分数吗?即只能读取那些列但不能写入其中。顺便说一句qsn很清楚
-
所以你想让下载的 csv 对几个部分有写保护?
-
是的前三列
-
不可能使用 CSV 文件执行此操作,因为它只是纯文本 - 仅此而已。如果您想对特定字段进行写保护,您必须使用另一种方法。你可以例如创建一个 Web 界面,其中只有标记的值可以更改,其他值仅显示,但不可修改。