Laravel по-русски

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

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

#1 31.01.2017 12:12:11

Добавить данные в бд

Есть функция

public function update(Request $request,$id)
    {
        $category=Category::find($id);
        $category->update($request->all());
        $category->save();

        return redirect()->route('categories')->with('message','Category '.$category->title. ' updated');
    }

Нужно из $category найти атрибут "public" и если $article = App\Article::where('category_id', $category->id); что бы во все посты где $article->category_id = $category->id, сменили значение $article->public на $category->public;

Реализовал я это так

public function update(Request $request,$id)
    {
        $category=Category::find($id);
        $category->update($request->all());
        $category->save();
        $article = Article::where('category_id, $category->id);
        $article->public = $category->public;
        $article->save();

        return redirect()->route('categories')->with('message','Category '.$category->title. ' updated');
    }

В итоге получаю Error сообщение с текстом "Method save does not exist".

Скажите пожалуйста как это коректно реализовать. Заранее спасибо!

Изменено MeKree (31.01.2017 12:14:41)

Не в сети

#2 31.01.2017 12:37:48

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Добавить данные в бд

С этим кодом возвращается не модель, а квери билдер.

$article = Article::where('category_id, $category->id);

Вам надо либо явно указать ид статьи

$article = Article::where('category_id, $category->id)->find(1);

Либо так

$article = Article::where('category_id, $category->id)->first();

Не в сети

#3 31.01.2017 14:07:20

Re: Добавить данные в бд

Спасибо, попробую и отпишусь

Не в сети

#4 31.01.2017 14:52:33

Re: Добавить данные в бд

$article = Article::where('category_id, $category->id)->find(1);

Либо так

$article = Article::where('category_id, $category->id)->first();

Работает по сути, но в данном случае проблема что данная функция передает только в первый 'article', а нужно что бы во все Article::where('category_id', $category->id) изменялюсь значение на то что в $category->id

Не в сети

#5 31.01.2017 15:11:51

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Добавить данные в бд

MeKree пишет:
$article = Article::where('category_id, $category->id)->find(1);

Либо так

$article = Article::where('category_id, $category->id)->first();

Работает по сути, но в данном случае проблема что данная функция передает только в первый 'article', а нужно что бы во все Article::where('category_id', $category->id) изменялюсь значение на то что в $category->id

Тогда так

$article = Article::where('category_id, $category->id)->update(['public' => $category->public]);

Изменено TrueKanonir (31.01.2017 15:13:30)

Не в сети

#6 31.01.2017 15:37:38

Re: Добавить данные в бд

TrueKanonir пишет:

Тогда так

$article = Article::where('category_id, $category->id)->update(['public' => $category->public]);

Спасибо, заработало!!!

Не в сети

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