/** * Creates a new Order model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $modelClient = new Client(); $modelsOrder = [new Order()]; if ($modelClient->load(Yii::$app->request->post())) { $modelsOrder = Model::createMultiple(Order::classname()); Model::loadMultiple($modelsOrder, Yii::$app->request->post()); // validate all models $valid = $modelClient->validate(); $valid = Model::validateMultiple($modelsOrder) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $modelClient->save(false)) { foreach ($modelsOrder as $modelOrder) { $modelOrder->id_client = $modelClient->id; if (!($flag = $modelOrder->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $modelClient->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('create', ['modelClient' => $modelClient, 'modelsOrder' => empty($modelsOrder) ? [new Order()] : $modelsOrder]); }
/** * create new client * @return avoid */ public function actionCreate() { $client = new Client(); $groups = new Group(); $groups_clients = new GroupClient(); if ($client->load(Yii::$app->request->post()) && $client->validate()) { // get post variable of GroupClient $list_groups = Yii::$app->request->post()['Group']['id']; // groups is required if (!empty($list_groups)) { // save client table first $client->save(); // each group will be saved with a corresponding client which be saved before foreach ($list_groups as $key => $group) { $groups_clients = new GroupClient(); $groups_clients->clients_id = $client->id; $groups_clients->groups_id = $group; $groups_clients->save(); } // everything is ok, redirect to clients list page $errors = $groups_clients->getErrors(); if (empty($errors)) { return $this->redirect(['/clients']); } } else { $groups->addError('id', 'Groups can not blank'); } } return $this->render('create', ['client' => $client, 'groups' => $groups, 'groups_clients' => $groups_clients]); }
/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update(Client $table, Request $request, $id) { $table->validate($request, $table->rules()); $table = $table->find($id); foreach (\Input::except('_token', '_method', 'client_logo') as $k => $v) { if (is_array($v)) { $v = json_encode($v); } $table->{$k} = $v; } $table->save(); if ($request->hasFile('client_logo')) { $table->uploadFile($request->file("client_logo"), $id); } $notification[] = array('type' => 'success', 'message' => \Lang::get('notification.edit_success')); \Session::flash('notification', $notification); return redirect('client'); }