yii2 създаване на бисквитка

stoqnski

Registered
Здравейте , в документацията на framework-a пише следното:

http://www.yiiframework.com/doc-2.0/guide-runtime-sessions-cookies.html

а класа Coockie има следните пропертита :

http://www.yiiframework.com/doc-2.0/yii-web-cookie.html

Идея: Да сложа в бисквитката id-тата на отделните страници от ( view.php?id=3 , view.php?id=4 ) т.е. да стане нещо такова: [..,3,4..] ...
Функционалност,която искам: да се запазват дадени id-та в страница "Любими" в бисквитка с expire период 1 година .(има такова проперти)
Проблем: искам да наблъскам във 'value'-то на бисквитката масив , но типа на това поле е за стринг .

До къде стигнах:
//MVC модел

във view-то си имам линк(добави в любими),който води към action-a в контролера , там създавам бисквитката : с нещо такова :

PHP:
   public function actionCreateCookie($id){
    $model = Text::findOne($id);
    $cookies = Yii::$app->response->cookies;
    $cookies->add(new \yii\web\Cookie([
        'name' => 'favourite_texts',
        'value' => $model->id,
        //'expire'=>
    ]));
    }

А във view-то я изкарвам така:

PHP:
                           $cookies = Yii::$app->request->cookies;
                           if (isset($cookies['favourite_texts'])) {
                        $favourites = $cookies['favourite_texts']->value;
                        var_dump($favourites);
//Връща само последното вкарано ID в бисквитката
                        }

И примерно като отида на страница view.php?id=3 и натисна линка взима ID-то и го изкарва в страницата "любими" , но като добавя още някой линк ,то "замества" сегашното value(ID) и изкарва него ... затова стигнах до извода , че ми трябва масив , но пък това property на класа не приема масив там за value ... Помагайте ... може и да съм в грешка
 
Здравей,
имплодни масива с ИД-тата с подходящ сепаратор, примерно "," и така ги запиши в кукито. След това си ги екслодни и пак ще имаш масив.
Друг вариант - сериализирай масива. Но имай предвид, че кукитата могат да поемат относително малко информация - 4k, така че сериализираният масив не трябва да е много голям.
Поздрави.
 
imagination каза:
Здравей,
имплодни масива с ИД-тата с подходящ сепаратор, примерно "," и така ги запиши в кукито. След това си ги екслодни и пак ще имаш масив.
Друг вариант - сериализирай масива. Но имай предвид, че кукитата могат да поемат относително малко информация - 4k, така че сериализираният масив не трябва да е много голям.
Поздрави.

иии да е бях забравил за този начин , звучи логично ще пробвам довечера : ))
 

Back
Горе