перепробовал кучу всего но в лучшем случае выводит только одну дату) Я знаю что не так делаю, но что именно нетак? есть запрос к БД в контроллере: Код (Text): $pathuser = DB::table('tracker_sessions') ->join('tracker_log','tracker_sessions.id','=','tracker_log.session_id') ->join('tracker_paths','tracker_log.path_id','=','tracker_paths.id') ->select('tracker_sessions.client_ip','tracker_paths.path','tracker_sessions.created_at') ->where('tracker_sessions.is_robot',0) ->where('tracker_sessions.created_at','>=',Carbon::now()->subHour(1)) ->get(); echo $pathuser дает такой результат: Код (Text): [{"client_ip":"136.143.127.164","path":"\/","created_at":"2020-10-07 13:06:18"},{"client_ip":"136.143.127.164","path":"statistica","created_at":"2020-10-07 13:06:18"},{"client_ip":"136.143.127.164","path":"statistica","created_at":"2020-10-07 13:06:18"},{"client_ip":"136.143.127.164","path":"statistica","created_at":"2020-10-07 13:06:18"},{"client_ip":"136.143.127.164","path":"statistica","created_at":"2020-10-07 13:06:18"},{"client_ip":"136.143.127.164","path":"statistica","created_at":"2020-10-07 13:06:18"}] пробовал примерно так: Код (Text): for($i=0;$i<=5;$i++) { foreach ($pathuser[$i] as $key -> $value) { $pathuser = $value; } } Но выдает только значение времени: 2020-10-07 13:06:18 значение последнего ключа в первой колекции. как правильно показать только значения всех ключей каждой колекции внутри этого... списка?? типа 136.143.127.164 statistica 2020-10-07 13:06:18
А с какого перепугу там JSON появился вообще? Должен был быть объект Collection. с объектами (а не массивами) внутри. Второй пример php кода - какой-то непонятный бред
Хоть я и далек.. но вот что имею на данный момент: если сделать gettype ($pathuser); то выдает Object. Истину..., что я только не делал... И через for и через foreach и двумя и даже четырьмя for-foreach... Мутаторы и комутаторы... Арреи и т.д.. В такие дебри уже залез голова квадратная... Циклы работают (что странно) но не дают того что надо.. Ну объясните, ну почему вот так Код (Text): $pathusera = DB::table('tracker_sessions') ->join('tracker_log','tracker_sessions.id','=','tracker_log.session_id') ->join('tracker_paths','tracker_log.path_id','=','tracker_paths.id') ->select('tracker_sessions.client_ip','tracker_paths.path','tracker_sessions.created_at') ->where('tracker_sessions.is_robot',0) ->where('tracker_sessions.created_at','>=',Carbon::now()->subHour(1)) ->get(); $pathuserr = json_decode($pathusera); foreach($pathuserr as $key => $pat) { foreach ($pat as $pat) { echo var_dump($pat); } } Результат получается таким Код (Text): string(13) "46.211.34.241" string(10) "statistica" string(19) "2020-10-08 13:13:01" string(13) "46.211.34.241" string(1) "/" string(19) "2020-10-08 13:13:01" А если не вардамплю а пытаюсь вывести как переменную Код (Text): $pathusera = DB::table('tracker_sessions') ->join('tracker_log','tracker_sessions.id','=','tracker_log.session_id') ->join('tracker_paths','tracker_log.path_id','=','tracker_paths.id') ->select('tracker_sessions.client_ip','tracker_paths.path','tracker_sessions.created_at') ->where('tracker_sessions.is_robot',0) ->where('tracker_sessions.created_at','>=',Carbon::now()->subHour(1)) ->get(); $pathuserr = json_decode($pathusera); foreach($pathuserr as $key => $pat) { foreach ($pat as $pattt) { $pathuser = $pattt; } } То результат всегда такой: Код (Text): 2020-10-08 13:13:01 почему оно хотябы как вардампит не выводит в переменной?
Не надо тебе ничего декодировать, включай голову. У тебя уже объект. И работай с ним как с объектом. Один форыч по объекту и всё. И обращаться к данным в стиле объекта, а не массива. PHP: foreach ($pat as $pat) это вот вообще что такое? PHP: echo var_dump это вот вообще как? PHP: foreach ($pathuser[$i] as $key -> $value) { $pathuser = $value; здесь вообще что подразумевалось. Блин, ну совсем элементарные вещи я объяснять не буду. Прочитай сам свой код, что ты вообще делаешь.
Есть $pathuser = [{"client_ip":"155.182.123.115","created_at":"2020-10-09 10:41:51","path":"statistica"}, {"client_ip":"155.182.123.115","created_at":"2020-10-09 10:41:51","path":"novinis"}, {"client_ip":"155.182.123.115","created_at":"2020-10-09 10:41:51","path":"statistica"}] Блин, ну вот https://stackoverflow.com/questions/4731242/php-loop-through-json-array такой-же аутпут как у мення Один форыч это такой? Код (Text): foreach ($pathuser as $key => $value) { $output = $value->path; } Если я обращаюсь к каждому массиву в моем $pathuser? (их там count($pathuser) = 3) то почему output выдает только значения последнего масива? где еще 2? я же foreach делаю... $output = 155.182.123.115 statistica 2020-10-09 10:41:51; Где еще 2? Такая конструкция тут тоже не рабртает Код (Text): $pathuser = json_decode($pathusera); foreach ($pathuser as $key => $value) { foreach ($value as $key => $val) { $output = $val->path; } } Блин ну если вам это так легко то хотяб обьясните что не так а не отсылайте к примерам. я по примерам итерирую же
Что ты на выходе получить пытаешься? Пока ты код какой-то с полным отсутствием логики приводишь, поэтому нифига не понятно. И json свой убери, там у тебя коллекция, по идее, объектов. Не надо ничего декодировать. А вообще, отложи ларавель, вернись к основам php
Совсем ты не хочешь думать. И основ не знаешь. Последуй совету Миши: отложи ларку, изучи основы. PHP: $pathusers = DB::table('tracker_sessions') ->join('tracker_log','tracker_sessions.id','=','tracker_log.session_id') ->join('tracker_paths','tracker_log.path_id','=','tracker_paths.id') ->select('tracker_sessions.client_ip','tracker_paths.path','tracker_sessions.created_at') ->where('tracker_sessions.is_robot',0) ->where('tracker_sessions.created_at','>=',Carbon::now()->subHour(1)) ->get(); foreach ($pathusers as $pathuser) { foreach ($pathuser as $value) { echo $value; } }
Разобрался.. Форычи изначально правильные были только сделать это надо было в вьюхе. вот код Код (Text): @foreach($pathusers as $index=>$key) <tr> <td>{{$key->created_at}}</td> <td>{{$key->client_ip}}</td> <td>{{$key->path}}</td> </tr> @endforeach в контроллере проитерировать и передать переменными во вьюху я так и не смог это первое что я делал, ну я ж статьи вывожу так-же и не только так.. и я не говопил что знаток пхп или лары.. циклом из контроллера не выводится почему-то с вьюхи моментально