аз имам създаде масив за сесии в ларавел използвайки кода:
Session::put("backUrl", array($workout_id =>URL::previous())) ;
//or
Session::push("backUrl.$workout_id", URL::previous()) ;
И двете работи и тя е създадена успешно и мога да я видя в дебъгер
"backUrl" => array(1) [
"78" => string (36) "http://192.241.4.104/admin/view?cs=1"
]
сега не мога да го отпечатам, кодът, който използвах е
echo Session::get("backUrl"[$workout_id]);
тя показва a syntax error, unexpected "["
грешка
И аз също използвах
echo Session::get("backUrl[$workout_id]");
нищо не работи
Отговори:
2 за отговор № 1Защото въведете целия си масив под променливата "backurl" на сесията.
ако var_dump:
var_dump(Session::get("backUrl")):
Сигурен съм, че получавате:
array(
[2] => "http://previous-url"
)
Така че, докато ходите така:
$lastUrl = Session::get("backUrl");
echo array_keys($lastUrl)[0]; //workout-ID
echo array_values($lastUrl)[0]; //Value
Или запазвате двете си променливи отделно:
Session::put("backUrl", URL::previous());
Session::put("lastWorkoutId", $workout_id);
И след това ги прочетете поотделно:
Session::get("backUrl");
Session::get("lastWorkoutId");
2 за отговор № 2
След няколко опита съм получил това, което исках сериен масив за URL адреса на бутона за връщане и благодарение на @ Steini за ценните му предложения. Публикувам това, тъй като може да е полезно за някой ...
Отначало се промених
Session::put("backUrl", array($workout_id =>URL::previous())) ;
да се
Session::put("backUrl.$workout_id", URL::previous()) ;
Видя Session :: push tag в Laravel Docs и се опитах да успея. Тъй като първата изтрива съществуващия сесиен масив и създава нов.
И отпечатването на сесийния масив на Laravel е толкова просто, колкото и отпечатването на сесия с допълнителна суфикс
Session::get("sessionArrayName")["id"]
(i.e)
Session::get("backUrl")[$workout_id];
По този начин моята сесия отпечатана масичка и го използва за ми гръб бутона ....