我使用用户插件。我使用了迁移
public function up()
{
Schema::table('users', function($table)
{
$table->text('sex')->nullable();
$table->date('birthday')->nullable();
$table->string('doc_photo')->nullable();
});
}
使字段在管理面板和前端用户帐户中都可编辑
UserModel::extend(function($model){
$model->addFillable([
'sex',
'birthday',
'doc_photo'
]);
});
UsersController::extendFormFields(function($form, $model, $context){
$form->addTabFields([
'sex' => [
'label' => 'Sex',
'type' => 'text',
'tab' => 'Personal info'
],
'birthday' => [
'label' => 'Birthday',
'type' => 'text',
'tab' => 'Personal info'
]
'doc_photo' => [
'label' => 'Photo',
'type' => 'text',
'tab' => 'Documents'
]
]);
});
如何使用将文件上传到服务器。例如,头像
这是我为后端做的方法:
从数据库表中删除doc_photo
public function up()
{
Schema::table('users', function($table)
{
$table->text('sex')->nullable();
$table->date('birthday')->nullable();
});
}
Plugin.php-将doc_photo添加为附件而不是字段,并作为后端控制器中的文件上传小部件
UserModel::extend(function($model){
$model->addFillable([
'sex',
'birthday'
]);
$model->attachOne['doc_photo'] = 'System\Models\File';
});
UsersController::extendFormFields(function($form, $model, $context){
$form->addTabFields([
'sex' => [
'label' => 'Sex',
'type' => 'text',
'tab' => 'Personal info'
],
'birthday' => [
'label' => 'Birthday',
'type' => 'text',
'tab' => 'Personal info'
],
'doc_photo' => [
'label' => 'Photo',
'type' => 'fileupload',
'mode' => file,
'thumbOptions' => [
'mode' => 'crop',
'extension' => 'auto'
],
'useCaption' => true,
'tab' => 'Documents'
]
]);
});
这是为前端:
使组件具有onUpload()
功能并加载Auth Facade:
public function onUpload() {
$user = Auth::getUser();
$user->doc_photo = Input::file("doc_photo");
$user->save();
return Redirect::refresh();
}
要在default.htm部分中找到的HTML / Twig代码:
{{ form_open({files: true, request: 'onUpload'}) }}
<!--File Input-->
<input type="file" name="doc_photo" required="required" class="">
<!--File Input-->
<!--Submit/Upload Button-->
<button type="submit" class="">Upload</button>
{{ form_close() }}