отображение представления сразу после контроллера ресурса 'store' в laravel - PullRequest
0 голосов
/ 07 февраля 2019

, поэтому в данный момент мой контроллер ресурсов «store» добавляет в таблицу в моей базе данных и выбирает представление для моей страницы «index» (моей домашней страницы), однако при обновлении этого представления он дублирует последнюю строку, добавленную в базу данных,я заметил, что URI 'http://127.0.0.1:8000/store' вместо' http://127.0.0.1:8000/index' может кто-нибудь объяснить, пожалуйста, что происходит.Я прошу прощения за отсутствие технических терминов, я новый ученик и пытаюсь понять это, используя свою собственную инициативу, но до сих пор не повезло.я также заметил, что моя функция выхода из системы делает то же самое, хотя URI немного отличается тем, что он по-прежнему отображает маркер CSRF в URI, однако он по-прежнему сообщает его по пути к файлу 'logout', вот пример этого;'http://127.0.0.1:8000/logout?_token=bqTl4J3EZyKj7LS5ZvqfRB8k1Qg02IT1j4WlBG51&dir2login='

К вашему сведению, я уже пытался вернуть $ this-> index ();

мой метод контроллера выхода из системы;

  public function logout(){
  Auth::logout();
  return view('index',['posts'=>$this->getTable()]);
}

мой контроллер магазинаМетод:

public function store(Request $request){
  //creates new row in database table
  //$clientIp=$request->ip();
  $post = new PostModel();
  //gets email of user currently logged in
  $post->email=Auth::user()->email;
  $post->ip=$request->ip();
  $post->content=$request->content;
  $post->company=$request->company;
  $post->rating=$request->rating;
  //saves to database
  $post->save();
  return view('index',['posts'=>$this->getTable()]);
}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

То, что вы пытаетесь сделать здесь, - это заставить пользователя перейти к представлению индекса.Однако вместо того, чтобы возвращать другое представление (и снова определять логику «записей»), гораздо проще перенаправить пользователя к методу index вашего контроллера.У вас есть несколько вариантов сделать это.У меня есть три перечисленных ниже:

Это то, что у вас сейчас есть:

return view('index',['posts'=>$this->getTable()]);\

вы можете сделать с помощью « action » (ControllerName @ FunctionName):

return redirect()->action('PostController@index');

или с " именованным маршрутом ":

return redirect()->route('posts.index');

или по прямому URL

return redirect('/');
0 голосов
/ 07 февраля 2019

Вы пробовали

перенаправление возврата ('/');

...