2

在 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以便我可以将上传的路径与对象的其余部分一起存储在数据库中?

4

1 回答 1

4

是的,当然。做这个:

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');
}
于 2018-08-24T17:05:38.030 回答