Здесь я пытаюсь добавить функцию «Добавить комментарий», и это вызывает проблемы с отображением данных.
public function store(Request $request)
{
$chatterreply = new Chatterreply;
$chatterreply->reply = $request->body;
$chatterreply->chatter_post_id = $request->chatter_post_id;
$chatterreply->chatter_discussion_id = $request->chatter_discussion_id;
$chatterreply->save();
$chatterreplies = Chatterreply::where('chatter_post_id',$request->chatter_post_id)->get();
$chatter_editor = config('chatter.editor');
if ($chatter_editor == 'simplemde') {
// Dynamically register markdown service provider
\App::register('GrahamCampbell\Markdown\MarkdownServiceProvider');
}
echo "<pre>"; print_r($chatterreplies); die;
return view('chatter::discussion', compact('chatterreplies','chatter_editor'))->with('chatter_alert','Add Comment Successfully');
}
И вот где я передаю переменную
$chatter = session()->pull('chatter');
return view('chatter::discussion', compact('discussion', 'posts', 'chatter_editor'))->with('chatterreplies',$chatter);
Что за ошибка? Какую версию Laravel вы используете? Вы добавили слишком много тегов для этого вопроса. Также ваш store
должен перенаправлять после создания новых данных, а не возвращать представление.
@ DarrylE.Clarke данные теперь отображаются, но когда я проверяю данные с помощью dd (''); он показывает данные в этом представлении, я использую laravel 5.6. Возврат был предложен одним из членов stackoverflow.
view("chatter::discussion")
не кажется правильным; вы используете точечную нотацию ("folder.file"
), чтобы указать файл .blade.php
, который вы хотите показать с помощью метода view()
. Кроме того, view(..., compact(...))
и view(...)->with(...)
выполняют то же самое; используйте один или другой.
Но сэр, я делаю это в пакете, поэтому для этого используется ::, поскольку болтовня - это имя пакета, а обсуждение - это представление @TimLewis
Хм ... Я никогда не видел, чтобы ::
использовался в таком контексте, поэтому не могу сказать, правильно он или нет; просто наблюдение.
хорошо, сэр @TimLewis
До сих пор не ясно, в чем проблема.
@TimLewis Это работает, это пространство имен или «подсказка по пакету» для представлений, предоставленных поставщиком, которые находятся за пределами вашей папки ресурсов / представлений.
Если кто-нибудь может помочь мне через TeamViewer
@RossWilson Сэр, проблема в том, что я храню комментарии, и когда я передаю данные, чтобы показать эти комментарии в представлении, они не работают (видны), но когда я использую dd ("") для тестирования, он показывает мне необходимые данные.
Есть ли причина, по которой вы не используете только контроллеры, поставляемые с пакетом?
Просто чтобы упростить работу, это неправильная практика @RossWilson
Ok. После беглого просмотра пакета это связано с тем, что прилагаемый к нему блейд-файл предполагает наличие определенных переменных, то есть $discussion
, $posts
и $chatter_editor
. В файле лезвия для $chatterreplies
ничего нет, поэтому файл лезвия не работает. Я бы посоветовал сделать для этого свой собственный напильник.
хорошо, сэр, но мои комментарии должны быть добавлены на той же странице обсуждение.blade.php. Так что я должен включить новое представление на страницу обсуждения. @RossWilson
Что за ошибка?