1.在companies表里面添加一个名字为logo类型varchar(255)字段
2.修改models下的companies.php文件
class Companies extends \yii\db\ActiveRecord
{
public $file;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['company_name' , 'company_email', 'company_address', 'company_created_date' ,'company_created_date', 'company_status' ], 'required'],
[['company_created_date' ], 'safe'],
[['company_status' ], 'string'],
[['file' ], 'file'],
[['company_name' , 'logo', 'company_email', 'company_address' ], 'string', 'max' => 255]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'company_id' => 'Company ID',
'company_name' => 'Company Name',
'company_email' => 'Company Email',
'company_address' => 'Company Address',
'file' => 'Logo',
'company_created_date' => 'Company Created Date',
'company_status' => 'Company Status',
];
}
}
3.在web文件夹加下面新建一个名字是uploads的文件夹
4.修改_form.php
<?php
use yii\helpers \Html;
use yii\ widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\models\Companies */
/* @var $form yii\widgets\ActiveForm */
?>
<div class= "companies-form">
<?php $form = ActiveForm::begin (['options'=> ['enctype'=> 'multipart/form-data']]); ?>
#code ...
<?= $form ->field( $model, 'file' )->fileInput () ?>
<?= $form ->field( $model, 'company_status' )->dropDownList ([ 'active' => 'Active' , 'inactive' => 'Inactive', ], ['prompt' => 'Status']) ?>
< div class="form-group" >
<?= Html ::submitButton( $model->isNewRecord ? 'Create' : 'Update', ['class' => $model-> isNewRecord ? 'btn btn-success' : 'btn btn-primary' ]) ?>
</ div>
<?php ActiveForm::end (); ?>
</div>
5.修改控制器CompaniesController.php
/**
* Creates a new Companies model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
if (Yii:: $app->user ->can( 'create-company')){
$model = new Companies ();
if ($model-> load(Yii ::$app-> request->post ()) ) {
$imageName =$model-> company_name;
// get the instance of the uploaded file
$model->file =UploadedFile:: getInstance($model ,'file');
$model->file ->saveAs( 'uploads/'.$imageName .'.'. $model->file ->extension);
// save the path in the db column
$model->logo ='uploads/'. $imageName.'.' .$model-> file->extension ;
$model ->company_start_date=date ('Y-m-d H:i:s');
$model ->company_created_date=date ('Y-m-d H:i:s');
$model ->save();
return $this ->redirect([ 'view', 'id' => $model->company_id ]);
} else {
return $this ->render( 'create', [
'model' => $model,
]);
}
}else {
throw new ForbiddenHttpException ;
}
}