
Александр
17.05.2017
01:23:36
а время поджимает

Dmitriy
17.05.2017
01:24:33
я и есть студент =)
ну тогда задание на завтрашнюю ночь =)

Andrew
17.05.2017
01:25:33

Александр
17.05.2017
01:25:42
rules() в модели что-то мне не нравится, откуда password и в том же духе? если это модель таблицы, то и rules описывают только поля из нее

Google

Andrew
17.05.2017
01:26:18
я связи знаю, но не в sql, в аксессе делал бд со связями, да и давно это было
я просто скопировал класс юзер
и переименовал его в результ

Александр
17.05.2017
01:27:14
дело в том что когда попробуешь сохранить, автоматически будет запущена валидация )0
она не пройдет с такими rules и не сохранится

Andrew
17.05.2017
01:28:00
ну я заменю сейчас на рекваред просто

Александр
17.05.2017
01:29:00
можно отключить валидацию ? вызывая $model->save(false)
вредные советы пошли

Andrew
17.05.2017
01:29:36
ыы)
я туплю
кажется что в контроллере дичь

Google

Andrew
17.05.2017
01:31:52

Александр
17.05.2017
01:31:59
не, хитрый какой
аа, точнее не так
if (isset($_POST['Result'])) {
// тут все сохраняем
$model->save(false);
// redirect забыл как вызывается ))
}
во view test1 разве используется $model?

Andrew
17.05.2017
01:36:25
вот эта ошибка все равно
на месте

Dmitriy
17.05.2017
01:39:21
в посте нету "Result"
что в посте ?

Andrew
17.05.2017
01:40:15
непонял

Александр
17.05.2017
01:40:24
как инпуты именуешь, по-идее напрашивается что должно быть так?
name="Result[q1]"
что в $_POST

Andrew
17.05.2017
01:41:04

Dmitriy
17.05.2017
01:41:44
в переменной $_POST
var_dump($_POST)

Andrew
17.05.2017
01:42:41
ща
там эксепшены прост валятся

Google

Александр
17.05.2017
01:44:15
во, читай коммент мой, цитирую:
"для того чтобы данные из попалив массив $_POST['Form']
все имена инпутов должны иметь вид Form[q1], Form[q2]
тогда обработка проста"

Andrew
17.05.2017
01:45:46
(туплю, сори)
(24 часа без сна не проходят зря)

Dmitriy
17.05.2017
01:47:05
да достаточко в контроллере пост поменять. чем везде менять на Result

Александр
17.05.2017
01:47:33
цикл надо тогда переписать

Andrew
17.05.2017
01:47:45
lf
да
все
норм

Александр
17.05.2017
01:48:00
не подсчет баллов

Andrew
17.05.2017
01:49:09

Александр
17.05.2017
01:49:25
вроде должно работать и так:
$form->field('Result', 'q5')->radioList(...)

Andrew
17.05.2017
01:50:35
вот с этой проблемой решение было простое

Александр
17.05.2017
01:50:47
ээ, подчет баллов тоже в условие помести

Andrew
17.05.2017
01:50:55
просто создание модели перенес в начало

Александр
17.05.2017
01:51:43
да, у тебя же он будет только при post запросе

Andrew
17.05.2017
01:51:52
логично

Google

Александр
17.05.2017
01:52:59
декущее действие контроллера у тебя какое и куда нужно делать редирект (на какой action)

Andrew
17.05.2017
01:54:23

Александр
17.05.2017
01:55:06
как у тебя называется действие и контроллер главной страницы?

Dmitriy
17.05.2017
01:55:11
return $this->redirect ...

Andrew
17.05.2017
01:55:12

Dmitriy
17.05.2017
01:56:13
синтаксис проверь

Andrew
17.05.2017
01:59:58
блин, снова сломал что то, эта гадость выскачила

Dmitriy
17.05.2017
02:00:33
код всего контроллера сюда скинь gits.github.com

Andrew
17.05.2017
02:01:17
public function actionTest1()
{
$model = new Result();
$balls = [
'q1' => [1,2,3,4,5],
'q2' => [1,2,3,4,5],
'q3' => [1,2,3,4,5],
'q4' => [1,2,3,4,5],
'q5' => [1,2,3,4,5],
'q6' => [1,2,3,4,5],
'q7' => [1,2,3,4,5],
'q8' => [1,2,3,4,5],
'q9' => [1,2,3,4,5],
'q10' => [1,2,3,4,5]
/// ...
];
$resultBalls = 0;
foreach ($_POST['Result'] as $q => $variant) {
$resultBalls += $balls[$q][$variant-1];
}
if (isset($_POST['Result']))
{
$model->name = Yii::$app->user->identity->name;
$model->last_name = Yii::$app->user->identity->last_name;
$model->groups = Yii::$app->user->identity->groups;
$model->test1 = $resultBalls;
$model->save(false);
//$this->redirect(['site/index']);
}
//ниже этого кода будешь сохранять результат:
// тут может быть редирект если надо
//$this->redirect(['index']);
return $this->render('test1',['model'=>$model]);
}

Admin
ERROR: S client not available

Dmitriy
17.05.2017
02:02:12
http://gits.github.com
лучше сюда. и весь файл я исправлю

Andrew
17.05.2017
02:03:21
https://gist.github.com/Lorens163/1eb081047496445671bdb9e45e49dbb3

Александр
17.05.2017
02:07:48
упал - отжался 20 раз, а то засыпаешь походу

Andrew
17.05.2017
02:08:43
мм

Dmitriy
17.05.2017
02:09:01
https://gist.github.com/exileed/3b6ece45875170eae3b8afc14b139189

Andrew
17.05.2017
02:09:32

Dmitriy
17.05.2017
02:11:03
явно не в этом файле

Google

Andrew
17.05.2017
02:11:26
в чем она заключается?

Dmitriy
17.05.2017
02:12:31
Модификатор видимости метода

Andrew
17.05.2017
02:12:41
да, есть такое
я хз откуда

Dmitriy
17.05.2017
02:13:03
у yii2 есть стейтрейс
внизу ошибки обычно пишется

Andrew
17.05.2017
02:14:02
(я не шарю)
а как вот это пофиксить? потом же нельзя записать тест2 в строку?
переделать бд?

Dmitriy
17.05.2017
02:16:33
что нужно записывать
не понял

Andrew
17.05.2017
02:17:26

Dmitriy
17.05.2017
02:17:48
обновить можно и все

Александр
17.05.2017
02:17:49
наверное хочешь результаты нескольких тестов собрать в одну таблицы?

Dmitriy
17.05.2017
02:18:04

Andrew
17.05.2017
02:18:12

Dmitriy
17.05.2017
02:18:15
и по нему обновить таблицу

Andrew
17.05.2017
02:18:17

Александр
17.05.2017
02:18:42
для этого сначала ищещь, а есть ли строка от этого пользователя.
меняшь
$model = new Result();
на
$model = Result::find()->where(['name' => $name, 'last_name' => $last_name])->one();
но как упоминалось ранее, тут уже лучше хранить просто id_user