Laravel5.8: La méthode GET n'est pas pris en charge pour cette route. Méthodes prises en charge: par la POSTE. question

Je suis en train de profil de l'utilisateur mise à jour de la section. Mais quand je suis allé profil créer une page, j'ai eu un erreur.

The GET method is not supported for this route. Supported methods: POST.

J'ai essayé de php artisan route:clear et tout vérifié. Mais je ne pouvais pas résoudre cette question, donc je suis heureux si quelqu'un m'aide.

web.php

Route::get('user/profile','[email protected]')->name('profile.index');
Route::POST('user/profile/create', '[email protected]')->name('profile.create');

create.blade.php

<form action="{{route('profile.create')}}" method="POST">@csrf

                    <ul class="information">
                        <li>Name :<br>
                            <input type="text" class="name" name="name">
                        </li><br>
                        <li>Gender :<br>
                            <div class="gender">
                                <select name="gender" id="" name="gender">
                                    <option class="option" value="" selected="selected">Select Gender</option>
                                    <option value="" >Male</option> 
                                    <option value="United States" class="selected">Female</option> 
                                    <option value="United Kingdom">Any</option> 
                                </select>       
                            </div>
                        </li>   
                        <li>Country :<br>
                            <div class="country">
                                <select name="country" id="" name="country">
                                    <option value="" selected="selected">Select Country</option> 
                                    <option value="United States" class="selected">United States</option> 
                                    <option value="United Kingdom">United Kingdom</option> 
                                </select>
                            </div>    
                        </li><br>
                        <li>Birthday :<br>
                            <input type="text" class="birthday" id="bod" name="bod">
                        </li><br>
                        <li>User Description :<br>
                            <textarea name="description" id="" cols="60" rows="10"></textarea></li>
                    </ul>
                    <button type="submit" class="saveBtn">Save</button>
                </div>
            </form>

table de profil

public function up()
    {
        Schema::create('profiles', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('user_id');
            $table->string('image');
            $table->string('name');
            $table->string('gender');
            $table->string('country');
            $table->string('bod');
            $table->string('description');
            $table->timestamps();
        });
    }

UserController.php

class UserController extends Controller
{
    public function index() {
        return view('profile.index');
    }

    public function store(Request $request) {
        $user_id = auth()->user()->id;


        Profile::where('user_id',$user_id)->update([
            'name'=>request('name'),
            'gender'=>request('gender'),
            'country'=>request('country'),
            'bod'=>request('bod'),
            'description'=>request('description')
        ]);

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

    }
}
0
2019-09-18 07:21:00
source
1 réponses

L'erreur est due à vous confus temps en millisecondes et le temps en secondes. 1568814839L est le nombre de secondes depuis le 1/1/1970, mais vous êtes les traitant comme des millisecondes. C'est assez facile à vérifier:

long millis = 1568814839L;
System.out.println(millis); //1568814839
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Asia/Tashkent"));
System.out.println(calendar.getTimeInMillis()); //1568820981321
calendar.setTimeInMillis(millis);
System.out.println(calendar.get(Calendar.YEAR));//839

Ceci va produire:

1568814839
1568820981321
1970

Comme vous pouvez le voir, votre nombre est de 3 ordres de grandeur large. Ajouter trois de 0 à la fin de votre millis nombre:

long millis = 1568814839000L;
...
System.out.println(calendar.get(Calendar.YEAR));

Maintenant, vous obtenez:

1568814839000
1568821211006
2019
+3
2019-09-18 07:52:01

Voir d'autres questions sur les étiquettes