Php 传递给App\Http\Controllers\UsoSueloController::store()的参数1必须是\Http\Request的实例,字符串为
这是我的代码: 控制器: 请帮忙 Laravel 5.8你试过这个吗Php 传递给App\Http\Controllers\UsoSueloController::store()的参数1必须是\Http\Request的实例,字符串为,php,laravel,Php,Laravel,这是我的代码: 控制器: 请帮忙 Laravel 5.8你试过这个吗 trait storeTrait{ public function store(Request $request, $file) { Excel::import(new UsoSueloImport, $file); } } 你试过这个吗 trait storeTrait{ public function store(Request $request, $file) {
trait storeTrait{
public function store(Request $request, $file) {
Excel::import(new UsoSueloImport, $file);
}
}
你试过这个吗
trait storeTrait{
public function store(Request $request, $file) {
Excel::import(new UsoSueloImport, $file);
}
}
当你在做
$this->store
您正在调用控制器方法,而不是使用trait。这是因为这些方法具有相同的名称。你需要
所以
当你在做
$this->store
您正在调用控制器方法,而不是使用trait。这是因为这些方法具有相同的名称。你需要
所以
Php假设您正在调用控制器的store方法,如果您想将trait方法的名称与controllers方法的名称相同,那么当您在controller类中调用traits方法时,您需要更改traits方法的名称,而您根本没有这样做 类UsoSueloController扩展了控制器 { 使用storeTrait{ 存储为storeFile; } 公共函数storeRequest$request { $file='uso_suelo.csv'; $this->storeFile$file; }
Php假设您正在调用控制器的store方法,如果您想将trait方法的名称与controllers方法的名称相同,那么当您在controller类中调用traits方法时,您需要更改traits方法的名称,而您根本没有这样做 类UsoSueloController扩展了控制器 { 使用storeTrait{ 存储为storeFile; } 公共函数storeRequest$request { $file='uso_suelo.csv'; $this->storeFile$file; }
谢谢,我有另一个错误:找不到文件,但我意识到在名称空间中它是错误的:我将其更改为名称空间App\Traits;它运行良好谢谢,我有另一个错误:找不到文件,但我意识到在名称空间中它是错误的:我将其更改为名称空间App\Traits;它运行良好
$this->store
use storeTrait { store as traitStore };
class UsoSueloController extends Controller
{
public function store(Request $request)
{
$file= 'uso_suelo.csv';
$this->traitStore($file);
}