Skip to content
Advertisement

Directory issue in laravel

As I am leaning laravel I am facing directory issues. I have made a navbar in which a create option is given to access the create file which is located in my resources/views/posts/create directory. The problem is that when I click it for the first time it functions fine and in URL shows I have opened posts/create directory which is fine. but if I click it again, it goes in posts/posts/create directory, which results give 404|Not Found error

my files are create.blade.php

@extends('main')
@section('content')
<div class="row">
    <div class="col-sm-8 offset-sm-2">
       <h1 class="display-3">Add a BLOG</h1>
     <div>
         <form method="POST" action="{{route('posts.store')}}">
            
             @csrf
             <div class="form-group">    
                 <label for="first_name">Title:</label>
                 <input type="text" class="form-control" name="title"/>
             </div>
   
             <div class="form-group">
                 <label for="last_name">Body :</label>
                 <input type="text" class="form-control" name="body"/>
             </div>
             <button type="submit" class="btn btn-lg btn-primary">Add Blog

             </button>

         </form>
   </div>
    @endsection

web.php

Route::resource('posts', 'PostController');

and for controller, I used a resource controller PostController.php

public function create()
    {
        return view('posts.create');
    }

    public function store(Request $request)
    {
       $post = new posts;
        $post->title = $request->input('title');
        $post->body = $request->input('body');
        $post->save();
        return redirect('/');
}

Apologies as I know its a very bad way of asking the question but I am finding hard to tell in an easy way

please guide me through it.

Advertisement

Answer

You need to pass full URL.

<a href="{{ route('posts.create')}}" >
<a href="{{ url('posts/create')}}" >

In a controller, if you want to redirect then.

return redirect()->route('posts.create');
return redirect('posts/create');
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement