1. Quellcode:
public function importexcel(Request $request){
$file = Input::file('myfile');
if($file->isValid()){
$tmpName = $file->getClientOriginalName();
$path = $file->move(storage_path().'/uploads',$tmpName);
$subtmpName = substr($tmpName,0,-5);
$filePath = "storage/uploads/".iconv('UTF-8', 'UTF-8', $subtmpName).'.xlsx';
Excel::load($filePath, function($reader) {
$reader->noHeading();
$data = $reader->toArray();
for($i = 1;$i<count($data);$i++){
$midArr = $data[$i];
//获取一个人员的Player_id字段
if($i == 1){
$first_player_id = $data[1][0];
}
for($j = 0;$j<count($midArr);$j++){
$player_id = (string)$midArr[0];
$node = (string)$midArr[1];
$childnode = (string)$midArr[2];
$time = (string)$midArr[3];
$uuid = (string)UUID::generate();
//将Excel表中的数据导入score表中
***$result = DB::insert('insert into score (id,player_id,node,childnode,time) values (?,?,?,?,?)',[$uuid,$player_id,$node,$childnode,$time]);***
}
}
});
}else{
//Excel数据不合法的情况
}
dd($result);
}
2. Frage: Wie kann die Variable $result (kursiv) im Funktionskörper außerhalb des Methodenkörpers, also des Codes dd($result), aufgerufen werden?
Lösung: Referenz:
<?php
class demo{
public $var1 = null;
public function func1(){
$this->var1 = 'from func1';
}
public function func2(){
echo $this->var1;
}
}
$demo = new demo();
$demo->func1();
$demo->func2();
Das Definieren von Variablen in der Klasse kann das Problem lösen. Der Nachteil besteht darin, dass auf alle Methoden der Klasse zugegriffen werden kann. Ich hoffe, dass die Variable nur im Hauptteil der Methode importexcel() existiert. Auf die Variable $return in Excel::load($filePath, function($reader) {} kann außerhalb von Excel::load() zugegriffen werden.
$result = Excel::load($filePath, function($reader) {
return $result ,在外部直接使用访问importexcel这个类,由于你这个$result的结果由importexcel函数逻辑生成,不建议直接访问