PHP: вызов функции-члена содержит () в строке - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть простое приложение crud, в котором я хочу, чтобы пользователь мог добавлять теги по своему усмотрению.

Я использую этот плагин eloquent-taggable

Я следовал инструкциям согласно GitHub документам.

Вот мой контроллер

public function store(Request $request)
{

    $pages =new PageList([
        'pagetitle' => $request->get('pagetitle'),
        'articlelist' => $request->get('articlelist'),
        'tags' => $request->get('tags'),
        'status' => $request->get('status'),
        'prebid' => $request->get('prebid'),
    ]);

    $pages->save();

    $tags =explode(',', $request->tags);
    $pages->tag($tags);
    $pages->save();

    return redirect('/pages')->with('success', 'data saved!');
}

ОБНОВЛЕНИЕ

Когда я делаю dd($tags); Iполучить это

array:2 [▼
  0 => "dfdf"
  1 => "hjhjhj"
]

ОБНОВЛЕНИЕ

вот результат dd($request->get('tags'));

enter image description here

Теперь, когда я добавляю теги и нажимаю кнопку «Сохранить», я получаю следующую ошибку

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Вызов функции-члена содержит () в строке

Что я делаю не так в своем коде?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Я не знаком с библиотекой, но я не думаю, что вам нужно снова сохранять модель, также необходимо обрезать теги, поэтому попробуйте следующее:

public function store(Request $request)
{

    $pages =new PageList([
        'pagetitle' => $request->get('pagetitle'),
        'articlelist' => $request->get('articlelist'),
        'tags' => $request->get('tags'),
        'status' => $request->get('status'),
        'prebid' => $request->get('prebid'),
    ]);

    $pages->save();

    $tags =explode(', ', $request->tags); //note the change here from ',' to ', '
    $pages->tag($tags);//no need to save model again

    return redirect('/pages')->with('success', 'data saved!');
}

Похоже на известную проблему, специфичную дляПлагин, проверьте вопрос здесь: https://github.com/cviebrock/eloquent-taggable/issues/55

0 голосов
/ 26 сентября 2019

После отладки и поиска в Google plust stckoverflow я нашел решение

Вот мое решение

public function store(Request $request)
{

    $pages =new PageList([
        'pagetitle' => $request->get('pagetitle'),
        'articlelist' => $request->get('articlelist'),
        // 'tags' => $request->get('tags'), // I removed this 
        'status' => $request->get('status'),
        'prebid' => $request->get('prebid'),
    ]);

    // $tags =explode(', ', $request->tags); //i removed this
    $pages->tag($pages->tags);//I added this 

    return redirect('/pages')->with('success', 'data saved!');
}

Теперь ошибок нет, все работает как я хочу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...