public function beforeSave($insert) { if (!array_key_exists('owner_id', $this->getDirtyAttributes())) { $dns = parse_url($this->url)['host']; $owner_id = Owner::find()->where(['dns' => $dns])->scalar(); $this->owner_id = $owner_id; } return parent::beforeSave($insert); }
/** * @return mixed */ public function store() { $input = \Request::all(); $validator = \Validator::make($input, ['owner_id' => 'required', 'property_name' => 'required|max:255']); if ($validator->fails()) { \App::abort(400, $validator->messages()->first()); } $property = new Property($input); $owner = Owner::find($input['owner_id']); $property = $owner->Properties()->save($property); return \Response::json(['success' => true, 'message' => 'Property Created.', 'data' => $property]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Owner::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->joinWith(['images', 'images.tags']); $query->groupBy(['owner.id']); $query->andFilterWhere(['owner.id' => $this->id, 'image.id' => $this->image_id, 'tag.id' => $this->tag_id]); $query->andFilterWhere(['like', 'dns', $this->dns]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Owner::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $dataProvider->setSort(['attributes' => ['id', 'fullName' => ['asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC], 'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC], 'default' => SORT_ASC], 'license', 'state_id', 'city', 'zip_code', 'email', 'vehicleName' => ['asc' => ['Vehicle.make' => SORT_ASC, 'Vehicle.model' => SORT_ASC], 'desc' => ['Vehicle.make' => SORT_DESC, 'Vehicle.model' => SORT_DESC], 'default' => SORT_ASC]]]); if (!($this->load($params) && $this->validate())) { $query->joinWith(['vehicle']); return $dataProvider; } $query->andWhere('first_name LIKE "%' . $this->fullName . '%" ' . 'OR last_name LIKE "%' . $this->fullName . '%"'); $query->andFilterWhere(['id' => $this->id, 'state_id' => $this->state_id]); $query->andFilterWhere(['like', 'license', $this->license])->andFilterWhere(['like', 'city', $this->city])->andFilterWhere(['like', 'zip_code', $this->zip_code])->andFilterWhere(['like', 'email', $this->email]); $query->joinWith(['vehicle' => function ($query) { $query->where('Vehicle.make LIKE "%' . $this->vehicleName . '%"' . 'OR Vehicle.model LIKE "%' . $this->vehicleName . '%"'); }]); return $dataProvider; }