在Laravel中,在数据库中保存或存储数据的最佳方法是什么

时间:2015-01-31 06:20:40

标签: laravel-4

对于通常的Form,如下面的表单,我使用以下技术将数据保存到数据库中。

//控制器

public function store()
    {
        $validator = Validator::make($data = Input::all(), Person::$rules);
        if ($validator->fails())
        {
            return Redirect::back()->withErrors($validator)->withInput();
        }

        Person::create($data);
        return Redirect::route('admin.person.index');
    }

但是在我的表单中有一个文件输入字段,用户可以一次上传多个文件。我想将文件名存储到数据库i中,e image-1,image-2,image-3是这样的。我正在尝试使用图像干预包来处理图像文件。但在那种情况下,我的代码将数据存储到数据库中。

//表单

{{ Form::open(array('route' => array('admin.index.store'), 'method' => 'post', 'files' => true)) }}

    <li>
          {{ Form::label('name', 'Index Name') }}
          {{ Form::text('name', null, array( 'class' => 'form-control input-sm', 'placeholder' => 'Name' )) }}
          {{ $errors->first('name', '<p class="error">:message</p>' ) }}
    </li>


    <li>
          {{ Form::label('phone_number', 'Phone Number') }}
          {{ Form::text('phone_number', null, array( 'class' => 'form-control input-sm', 'placeholder' => 'Phone Number' )) }} 
          {{ $errors->first('phone_number', '<p class="error">:message</p>' ) }}
    </li>


    <li>
           {{ Form::label('image', 'Profile Picture') }}
           {{ Form::file('files[]', array('id' => 'files', 'multiple' => true)); }}

    </li>
{{ Form::close() }}

1 个答案:

答案 0 :(得分:0)

人::创建($数据);这不会飞。

您必须解析表单中的输入,单独删除文件,处理文件,然后使用

更新文件路径
//code to get $dataWithoutfiles;
$person = Person::create($dataWithoutFiles);
//code to save files to local
$person->file1 = 'path1';
// 2,3,4, etc.
 $person->save();
相关问题