Загрузка файла с использованием проверенных данных - PullRequest
0 голосов
/ 24 августа 2018

В Laravel у меня есть простая функция, которая сохраняет список вакансий в моей базе данных.

Изначально это выглядело так:

/**
 * Store a new instance of a job posting in the database
 *
 * @param Request $request
 * @return void
 */
public function store(StoreJobPost $request)
{
    $job = new JobPost();

    $job->position = $request->get('position');
    $job->description = $request->get('description');
    $job->location = $request->get('location');
    $job->business_area = $request->get('business_area');
    $job->contract_type = $request->get('contract_type');
    $job->hours = $request->get('hours');
    $job->salary = $request->get('salary');
    $job->salary_period = $request->get('salary_period');
    $job->attached_description = $request->get('attached_description');
    $job->scheme = $request->get('scheme');
    $job->contact_name = $request->get('contact_name');
    $job->contact_email = $request->get('contact_email');
    $job->contact_number = $request->get('contact_number');
    $job->status = $request->get('status');
    $job->expires_on = $request->get('expires_on');

    $job->save();

    return redirect()->route('vacancies.index')->with('success', 'Job listing created successfully');
}

Я сократил это, чтобы выглядеть так:

/**
 * Store a new instance of a job posting in the database
 *
 * @param Request $request
 * @return void
 */
public function store(StoreJobPost $request)
{
    $validFormData = $request->validated();

    $job = JobPost::create($validFormData);

    return redirect()->route('vacancies.index')->with('success', 'Job listing created successfully');
}

Однако я хочу также сохранить файл. Ранее я сделал что-то вроде этого:

$file = $request->file('file');
$path = $file->storeAs('library/', $file->getClientOriginalName());

В какой момент у меня было:

$object->path = $path;
$object->save();

В текущем сценарии возможно ли получить файл обратно из $validatedFormData, чтобы я мог сохранить путь к загрузке в базе данных с остальной частью объекта?

1 Ответ

0 голосов
/ 24 августа 2018

Да, конечно.Сделайте это:

public function store(StoreJobPost $request)
{
    $validFormData = $request->validated();

    $file = $request->file('file');
    $path = $file->storeAs('library/', $file->getClientOriginalName());
    $validFormData['path']= $path;

    $job = JobPost::create($validFormData);

    return redirect()->route('vacancies.index')->with('success', 'Job listing created successfully');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...