Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 26.04.2016 15:59:47

Max89

Cron

Пытаюсь реализовать, что бы каждую минуту обновлялись стримы twitch на главной.

public function __construct(Streams $id)
    {
        parent::__construct();
        $this->id = $id;
    }
public function handle()
    {
        $stream = $this->id->first();
        $twitch_api = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.$stream->name));
        if($twitch_api->stream == null) $live = 0;
        else $live = 1;
        $update = Streams::where('id', $stream->id)->firstOrFail();
        switch($live){
            case 0:
                
                break;
            case 1:
                
                break;
        }
        $update->status = $live;
        $update->save();
        $this->info("Streams updated");
    }

С first() код работает, обновляется только первая таблица, мне нужно что бы все обновлялись, как это реализовать. Правильно ли я это делаю вообще в целом.

#2 27.04.2016 10:57:42

Arat
Откуда: Киев
Сообщений: 116

Re: Cron

Я бы рекомендовал это прописать в новой команде для artisan и ее зафигачить через Schedule в кроне.
https://laravel.com/docs/5.2/artisan#writing-commands
https://laravel.com/docs/5.2/scheduling

Не в сети

#3 27.04.2016 12:46:30

Max89

Re: Cron

Arat пишет:

Я бы рекомендовал это прописать в новой команде для artisan и ее зафигачить через Schedule в кроне.
https://laravel.com/docs/5.2/artisan#writing-commands
https://laravel.com/docs/5.2/scheduling

У меня там это и прописано. Проблема в том что обновляется только верхняя таблица, а мне нужно что бы все. Насколько я понимаю, мне надо получить $id, но я не понимаю как это сделать в команде

#4 27.04.2016 14:46:45

Re: Cron

Если ты не поймешь что тебе надо, то как же другие справятся?))

Тебе надо для всех своих Streams сделать  то, что в handle?
Или же выборочно  для  некоторых id? Если выборочно, расскажи откуда они должны взяться?

Не в сети

#5 27.04.2016 14:55:25

Max89

Re: Cron

VitalN пишет:

Если ты не поймешь что тебе надо, то как же другие справятся?))

Тебе надо для всех своих Streams сделать  то, что в handle?
Или же выборочно  для  некоторых id? Если выборочно, расскажи откуда они должны взяться?

Да, для всех стримов, что бы все обновлялись, а не самый первый.

#6 27.04.2016 19:56:19

Re: Cron

как-то  так видимо

public function handle()
    {
        $streams = Streams::all();
        foreach ($streams as $stream)
       {
        $twitch_api = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.$stream->name));
        if($twitch_api->stream == null) $live = 0;
        else $live = 1;       

        $stream->status = $live;
        $stream->save();
        $this->info("Streams updated");
        }
    }

Не в сети

#7 27.04.2016 23:14:50

Max89

Re: Cron

VitalN пишет:

как-то  так видимо

public function handle()
    {
        $streams = Streams::all();
        foreach ($streams as $stream)
       {
        $twitch_api = json_decode(file_get_contents('https://api.twitch.tv/kraken/streams/'.$stream->name));
        if($twitch_api->stream == null) $live = 0;
        else $live = 1;       

        $stream->status = $live;
        $stream->save();
        $this->info("Streams updated");
        }
    }

Большое спасибо. Странно, что я сам не додумался, что то меня совсем в другое русло понесло с мыслями )

Подвал раздела