2015-12-22 3 views
0

Я новичок в Laravel 5.1 Можете ли вы помочь мне решить эту ошибку, потому что я работаю над этим целый день, и я не могу ее решить.Что вызывает это исключение FatalErrorException?

FatalErrorException в FileEntryController.php линиях 48: Вызов неопределенного метод App \ Http \ Просит \ UploadFiles :: Save()

Вот мой контроллер:

public function index() 
{ 
    $entries = Fileentry::where('user_id',Auth::user()->id)->get(); 
    return view('fileentries.index', compact('entries')); 
} 


public function store(UploadFiles $filename) 
{ 
     if($filename->file('filefield')) { 
     $file = $filename->file('filefield'); 

     $entry = new UploadFiles(); 

     $extension = $file->getClientOriginalExtension(); 
     $entry->filename = $file->getClientOriginalName(); 

     $entry->mime = $file->getClientMimeType(); 
     $entry->original_filename = $file->getClientOriginalName(); 
     $entry->description = Request::input('description'); 
     $entry->user_id = Auth::user()->id; 

     $entry->save(); 


     $file->move(Storage::disk('local')->put($file->getFilename().'.'.$extension, File::get($file))); 

     return redirect('upload'); 

     } 
} 

И здесь является моим Request/UploadFiles.php

namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class UploadFiles extends Request 
{ 
/** 
* Determine if the user is authorized to make this request. 
* 
* @return bool 
*/ 
public function authorize() 
{ 
    return true; 
} 

/** 
* Get the validation rules that apply to the request. 
* 
* @return array 
*/ 
public function rules() 
{ 
    return [ 
     'filename' => 'mimes:pdf,doc,jpeg,png,docx', 
     'description' => 'required', 
    ]; 
} 
+0

ли класс UploadFiles или запрос иметь 'save' функцию? – zedfoxus

+0

Что вы имеете в виду 'save' function? ...: D у меня нет в моем UploadFiles ^^ – angel1108

+0

, но вы вызываете его на UploadFiles ... –

ответ

1

Ваш код не будет работать должным образом, и некоторые его части должны быть удалены. Сначала в вашем методе store(), вы уже импортировали экземпляр UploadedFiles. Из вашего кода я вижу, что UploadedFiles - это класс Request, так что это нормально.

Однако, вы не должны делать другой экземпляр UploadedFiles в методе store, поскольку это не имеет смысла.

Вы должны, однако, создать новую модель под названием (File), и код должен быть чем-то вроде ниже.

общественная функция магазин (UploadFiles $ имя_файла) { если ($ filename-> файл ('FileField')) {$ файл = $ filename-> файл ('FileField');

$entry = new Files(); 

    $extension = $file->getClientOriginalExtension(); 
    $entry->filename = $file->getClientOriginalName(); 

    $entry->mime = $file->getClientMimeType(); 
    $entry->original_filename = $file->getClientOriginalName(); 
    $entry->description = Request::input('description'); 
    $entry->user_id = Auth::user()->id; 

    $entry->save(); 


    $file->move(Storage::disk('local')->put($file->getFilename().'.'.$extension, File::get($file))); 

    return redirect('upload'); 

    } 

}

+0

yes sir Я сделал это, но моя модель' Fileentry' имеет 'rules()', но все равно загружает файлы, которые не включены в мой модельный класс T_T. Он по-прежнему загружает '.php',' .html' и т. Д. – angel1108

+0

Возможно, ваше правило не соответствует правильному полю HTML. Каково имя поля загружаемого файла в HTML? –

Смежные вопросы