当我尝试上传文件时,显示错误:
未定义的变量:请求
这是我用它的地方: UploadController:
if($request->hasFile('file')){
$file = $request ->file('file');
$fileName = $file->getClientOriginalName();
$destinationPath = config('app.fileDesinationPath').'/'.$fileName;
$uploads = Storage::put($destinationPath,file_get_contents($file->getRealPath()));
}
return redirect()->to('/upload');
这里有什么问题?
答案 0 :(得分:14)
在您的函数中添加Request $request
参数。例如:
public function yourFunction(Request $request)
{
if($request->hasFile('file')){
$file = $request ->file('file');
$fileName = $file->getClientOriginalName();
$destinationPath = config('app.fileDesinationPath').'/'.$fileName;
$uploads = Storage::put($destinationPath,file_get_contents($file->getRealPath()));
}
return redirect()->to('/upload');
}
请仔细阅读文档:http://laravel.com/docs
您还可以在此处观看Laravel教程:http://laracasts.com
答案 1 :(得分:4)
答案 2 :(得分:1)
使用Request::hasFile
代替$request
。示例:
if(Request::hasFile('file')){
$file = Request::file('file');
$fileName = $file->getClientOriginalName();
$destinationPath = config('app.fileDesinationPath').'/'.$fileName;
$uploads = Storage::put($destinationPath,file_get_contents($file->getRealPath()));
}
return redirect()->to('/upload'); `
答案 3 :(得分:0)
显然你的方法中没有注入$request
(我想,你只发布了部分方法)。检查此项并在必要时将其添加为参数。
答案 4 :(得分:0)
要访问$ request变量,您需要将其添加到方法参数
public function myFunction(Request $request)
{
// access $request here
}
为了完成这项工作,您需要添加
use Illuminate\Http\Request;
如果您想在请求中进行验证和授权,您可以创建自己的请求,而不是直接使用Illuminates Request Class
php artisan make:request MyRequest
您将找到并授权方法和部分以返回验证规则。