- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
public function actionView($id = null) {
$user = Yii::$app->user->identity;
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : $id;
$new_model = 0;
if (empty($id)) {
$draft_model = Applicant::find()->where(['draft' => 1, 'created_by' => $user->id])->one();
if (empty($draft_model)) {
$draft_model = new Applicant();
$new_model = 1;
$draft_model->draft = 1;
$draft_model->save();
}
if (!empty($draft_model->id)) {
$id = $draft_model->id;
}
}
$model = $this->findModel($id);
$allow_sections = [];
if (empty($model->draft)) {
$updateRequest = \app\models\UserRequest::find()->where(['user_id' => $user->id, 'object_id' => $id, 'status' => 2])->one();
if (!empty($updateRequest)) {
$allow_sections = explode(";", $updateRequest->additional_info);
}
}
if (isset($_GET['done']) && $_GET['done'] == 1) {
$result['success'] = false;
$userRequest = \app\models\UserRequest::find()->where(['user_id' => $user->id, 'object_id' => $id, 'status' => 2])->one();
if (!empty($userRequest)) {
$userRequest->status = 3;
if ($userRequest->save()) {
$result['success'] = true;
} else {
$error = \yii\widgets\ActiveForm::validate($userRequest);
if ($error != '[]') {
$result['msg'] = $error;
}
}
}
echo(json_encode($result));
exit;
} elseif (isset($_FILES['files']['name'][0]) && isset($_FILES['files']['type'][0]) && isset($_FILES['files']['tmp_name'][0]) && isset($_FILES['files']['size'][0])) {
$result['success'] = false;
$filename = strtotime("now") . "_" . $_FILES['files']['name'][0];
$size = $_FILES['files']['size'][0];
$uploaddir = realpath('../web') . '/images/applicant/';
if (!file_exists($uploaddir)) {
mkdir($uploaddir);
}
$uploadfile = $uploaddir . basename($filename);
$path_image = '/images/applicant/' . basename($filename);
if (move_uploaded_file($_FILES['files']['tmp_name'][0], $uploadfile)) {
if (!empty($model->photo_id)) {
$photo_model = \app\models\File::findOne($model->photo_id);
}
if (empty($photo_model->id)) {
$photo_model = new \app\models\File();
}
$photo_model->original = $filename;
$photo_model->name = $filename;
$photo_model->size = $size;
$photo_model->mime = $_FILES['files']['type'][0];
$photo_model->hash = $photo_model->generateHash();
if ($photo_model->save()) {
$model->photo_id = $photo_model->id;
if ($model->save()) {
$result['img'] = $filename;
$result['success'] = true;
}
}
$image = new Image();
$image->load($uploadfile);
if($image->getWidth()>640){
$image->resizeToWidth(640);
$image->save($uploadfile);
}
}
echo(json_encode($result));
exit;
} elseif (isset($_REQUEST['name'])) {
$result['success'] = false;
$model_attributes = $model->getAttributes();
$model_attributes['education'] = '';
unset($model_attributes['id']);
if ($_REQUEST['name'] == 'address_properties') {
$values = json_decode($_REQUEST['value'], true);
$names_values = ['address_region', 'address_city', 'address_street', 'address_house'];
kerman 14.04.2016 01:31 # 0
Это же PHP, для него это всё норма.
Vasiliy 14.04.2016 09:13 # 0
1024-- 14.04.2016 18:40 # −1
bormand 14.04.2016 18:48 # +6
Vasiliy 14.04.2016 18:52 # +1
3_14dar 14.04.2016 18:56 # +1
bormand 14.04.2016 18:58 # +1
Vasiliy 14.04.2016 18:59 # +2
3_14dar 14.04.2016 19:02 # −1
Vasiliy 14.04.2016 19:05 # −1
1024-- 14.04.2016 19:22 # +3
3_14dar 14.04.2016 19:41 # −3
Vasiliy 14.04.2016 21:08 # −3
А теперь ты признайся банка сгущенку уже свободно пролазит в твоё очко. Или ты всё еще пользуешься смазкой?
kegdan 15.04.2016 11:25 # +2
Vasiliy 15.04.2016 12:35 # −2
Дети все равно от этой пары не пойдут так что не страшно.
guest8 14.09.2018 23:23 # −999
3_14dar 15.04.2016 13:53 # −2
Vasiliy 15.04.2016 14:12 # −1
1. чечены ебут только русских - Ты не русский а тебя ебет Чечен.
2. Шамиль чечен и ебет укропа. Шамиль - не Чечен.
Все это приводит к следующему выводу. Пидаров ебут все кто хочет не взирая на национальности.
А теперь пидарок засунь свою банку себе в ебало и разминай очко, тебя ждет трудная ночь.
3_14dar 15.04.2016 14:48 # −2
guest8 14.09.2018 23:23 # −999
guest 15.04.2016 14:15 # +3
po/ - Пидарашку, который жаловался Путину за ... - Два.ч
https://2ch.hk/po/res/15445400.html
Пидарашку, который жаловался Путину за невыплату зарплаты садят на бутылку Аноним # OP 14/04/16 Чтв 07:29:51
/po/ - ЧЕЧНЯ РУЛИТ
https://2ch.hk/po/res/15445810.html
20 hours ago - И на бутылку от горiлки сесть не западло если побратим просит. Ответы: Аноним ... Двачну. Оно ещё во времена двача ходило. Ответы:.
Dec 13, 2015 - Посадят ОПа-хуя на бутылку, а об этом никто не узнает. Алсо недавно был случай как на одном известном сайте чувак оставил ...
/alco/ - Алкоголь - Два.ч
https://2ch.hk/alco/
Mar 25, 2016 - Сап, двач, съебал из дома по фану в дс, меня объявили в розыск, когда приеду домой, придётся писать ... На бутылку посодют. Ответы: ...
Каталог - Рисовач - Два.ч
https://2ch.hk/o/catalog.html
В одной руке держу гантель, в другой бутылку пиво, из которой пью. .... сап двач вот вам немного гомоебли ... РУССНЯ НА БУТЫЛКЕ ТРЕД О: 5 И: 5.
3_14dar 15.04.2016 14:49 # −2
Vasiliy 15.04.2016 15:06 # −2
3_14dar 15.04.2016 15:13 # −2
Vasiliy 15.04.2016 15:48 # −2
Тебе уже засунули потому тебя Шамиль бросил?
3_14dar 15.04.2016 21:41 # +1
guest 15.04.2016 21:39 # 0
guest 15.04.2016 21:38 # 0
Впрочем можешь не отвечать, и сам догадался.
>сап двач вот вам немного гомоебли
sikamikanico 14.04.2016 14:08 # 0
wvxvw 14.04.2016 15:05 # 0
inkanus-gray 14.04.2016 16:06 # +1
Сейчас модно всюду пихать MVC, но мало кто знает, как эта схема должна быть устроена (а тем более, как она должна работать), поэтому и появились MVP, MVVM, MTV, MVCS, LDVCS, HMVC и, наконец, ТТУК.
Кстати, а как правильно?
guesto 14.04.2016 16:46 # 0
Каноничный PHP MVC выглядит как говн https://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Сладкий хлебушек от Расмуса
Vasiliy 14.04.2016 17:14 # 0
guesto 14.04.2016 17:38 # 0
Vasiliy 14.04.2016 18:23 # 0
inkanus-gray 15.04.2016 16:01 # 0
planaric 14.04.2016 21:34 # 0
Полное несоответствие принципам MVC - толстая модель, тонкий контроллер.
M-A-X 26.04.2016 09:58 # −1
http://www.yiiframework.com/doc/guide/1.1/ru/basics.best-practices#sec-2
PHP фреймворки - УГ by design
guest 26.04.2016 19:07 # +1
Если это поняли ПХПшники, то поймет и макакака
M-A-X 26.04.2016 19:32 # 0
Есть такой замечательный принцип KISS.
guest 26.04.2016 19:45 # +1
Если писать только гостевые книги, как ты, то и модели-то не нужны
M-A-X 26.04.2016 19:56 # 0
Но она не в рамках одной сущности.
У мени сущности БД (для которых хватает 3 строки кода) и бизнес логика разделены.
Но оленям не понять красоты игры.
guest 26.04.2016 20:00 # 0
она раздлелена между контроллером, гуи и БД
так я и думал
M-A-X 26.04.2016 20:12 # 0
http://blog.kpitv.net/article/frameworks-1/ (читать от "Дибильное понимание буквы М в МВЦ")
А свои домыслы прошу оставить при себе.
defecate-plusplus 26.04.2016 19:46 # +3
посмотрите spring mvc или тот же aspnet mvc
модель всего лишь размечает сущности, описывает связи и зависимости
бизнес логика в сервисном слое
извлечением, сохранением модели занимается слой-репозиторий
больше, больше слоёв
хороших и разных
а не "твоя модель такая толстая, что использует матрасы вместо прокладок"
guest 26.04.2016 19:51 # −1
ну вот есть у тебя класс User с полем age. Где должен быть метод "isAllowedToDrinkBeer"? Очевидно в User.
А вот метод kickOutAllShkolota должен быть в service layer
Читаем Domain Driven Design короче
roman-kashitsyn 26.04.2016 20:14 # +5
Класс User должен знать законодательство всех стран, где юзер может пить пиво?
defecate-plusplus 26.04.2016 20:19 # +1
inkanus-gray 26.04.2016 21:07 # 0
Больше пересылок данных!
bormand 26.04.2016 21:09 # +1
inkanus-gray 26.04.2016 21:32 # +1
bormand 26.04.2016 22:01 # +1
Vasiliy 27.04.2016 15:22 # 0
inkanus-gray 26.04.2016 20:10 # 0
Вьюху должен кто-то вызвать. Первой приходит в голову идея вызвать вьюху из контроллера. Но вьюха должна получить данные. И тут, в зависимости от того, какой соблазн перевесит, возможны варианты:
1. Насрать бизнес-логику в контроллер. Получаем ТТУК.
2. Насрать обработку данных во вьюху. Получаем «бесфреймворковый» код.
Но я почему-то верю в то, что бывают и другие варианты.
inkanus-gray 15.04.2016 16:07 # 0
http://govnokod.ru/16298#comment239149
Оставлю здесь ссылку на всякий случай.
guesto 15.04.2016 16:29 # +2
а столько рассуждений