Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Hiiro's avatar
Level 2

After Submitting the data, not storing to the database

for the update() function, this appear

Undefined method 'update'.intelephense(1013)
  • My Update function
public function update(UpdateprofileRequest $request)
    {
        $user = auth()->user();

        $user->update([
            'nama' => $request->nama,
            'email' => $request->email,
            'date_of_birth' => $request->date_of_birth,
            'home_address' => $request->home_address,
            'gender' => $request->gender,
            'phone_number' => $request->phone_number,
            'genre_fav1' => $request->genre_fav1,
            'genre_fav2' => $request->genre_fav2
        ]);

        return redirect()->back();
    }

  • My ProfileRequest
<?php

namespace App\Http\Requests\Users;

use Illuminate\Foundation\Http\FormRequest;

class UpdateprofileRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required',
            'date_of_birth' => 'required',
            'home_address' => 'required',
            'gender' => 'required',
            'phone_number' => 'required',
            'genre_fav1' => 'required',
            'genre_fav2' => 'required'
        ];
    }
}

0 likes
31 replies
Sinnbeck's avatar

This part you can ignore for now. It is just your IDE that does not know if the update method because of laravel magic Undefined method 'update'.intelephense(1013)

First make sure that you are actually getting to the method. Here we use dd() to check if it hits. If it does not hit, then you validation most likely fails. If so, show the view

public function update(UpdateprofileRequest $request)
    {
        $user = auth()->user();
          dd($user);

        $user->update([
            'nama' => $request->nama,
            'email' => $request->email,
            'date_of_birth' => $request->date_of_birth,
            'home_address' => $request->home_address,
            'gender' => $request->gender,
            'phone_number' => $request->phone_number,
            'genre_fav1' => $request->genre_fav1,
            'genre_fav2' => $request->genre_fav2
        ]);

        return redirect()->back();
    }
Hiiro's avatar
Level 2

@Sinnbeck i tried to put ''dd($user)``, nothing happen when i submit the data

Sinnbeck's avatar

@Hiiro You just stay on the page? Can you show the view file for the page that submits to this endpoint?

Hiiro's avatar
Level 2

@Sinnbeck you mean this?

@extends('layout/main')


@section('title','User Profile')


@section('container')
<div class="container">
    <div class="main-body">
        <!-- /Breadcrumb -->
        <br>
        <div class="album py-1 bg-light" text-align=center>
            <h1 class="h3 mb-3 fw-normal">User Profile</h1>
        </div>
        <hr>


        <div class="row gutters-sm">


            <div class="col-md-8">
                <div class="card mb-3">
                    <div class="card-body">

                        <div class="row">

                            <div class="col-sm-3">
                                <h6 class="mb-0">Nama</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->nama}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Email</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->email}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Phone</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->phone_number}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Gender</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->gender}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Genre Favorit 1</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->genre_fav1}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Genre Favorit 2</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->genre_fav2}}
                            </div>
                        </div>
                        <hr>
                        <div class="row">
                            <div class="col-sm-3">
                                <h6 class="mb-0">Address</h6>
                            </div>
                            <div class="col-sm-9 text-secondary">
                                {{$user->home_address}}
                            </div>
                        </div>
                        @endforeach
                        <hr>
                        <div class="row">
                            <div class="col-sm-12">
                                <a class="btn btn-info " href="{{route('users.edit-profile')}}">Edit</a>
                            </div>
                        </div>

                    </div>

                </div>
            </div>

        </div>
    </div>
    @endsection
Sinnbeck's avatar

@Hiiro No I mean the one with the form for submitting to the update() method

Hiiro's avatar
Level 2

@Sinnbeck

public function update(UpdateprofileRequest $request)
    {
        $user = auth()->user();
        dd($user);

        $user->update([
            'nama' => $request->nama,
            'email' => $request->email,
            'date_of_birth' => $request->date_of_birth,
            'home_address' => $request->home_address,
            'gender' => $request->gender,
            'phone_number' => $request->phone_number,
            'genre_fav1' => $request->genre_fav1,
            'genre_fav2' => $request->genre_fav2
        ]);

        return redirect()->route('user.show')

            ->with('success', 'Profile updated successfully');
    }
Hiiro's avatar
Level 2

@Sinnbeck i mean this

@extends('layout/main')


@section('title','Forum - Create Discussions')




@section('container')
<div class="container">
    <br>
    <div class="row justify-content-center">
        <div class="col-md-15">

            <div class="card">
                <div class="card-header">{{ __('Add Discussions ') }}</div>

                <div class="card-body">
                    <form action="{{route('topic.update',$topic->topicID)}}" method="POST">
                        @csrf
                        @method('PUT')

                        <div class=form-group>
                            <label for="genre">Genre</label>
                            <br>
                            <select name="genre" id="genre" class="form-control">
                                @foreach($genres as $genre)
                                <option value="{{$genre->id}}">{{$genre->nama}}</option>
                                @endforeach
                            </select>
                            @error('genre')
                            <div class="alert alert-danger">{{ $message }}</div>
                            @enderror
                        </div>
                        <br>
                        <div class="form-group">
                            <label for="floatingInput">Judul</label>
                            <br>
                            <input type="text" id="title" name="title" class="form-control" value="$topic->title" placeholder="Judul" required="required">
                            @error('title')
                            <div class="alert alert-danger">{{ $message }}</div>
                            @enderror
                        </div>
                        <br>
                        <div class="form-group">
                            <label for="description">Description</label>
                            <br>
                            <input id="description" type="hidden" name="description" value="$topic->description">
                            <trix-editor input="description"></trix-editor>
                            @error('description')
                            <div class="alert alert-danger">{{ $message }}</div>
                            @enderror
                        </div>

                        <br>
                        <button type="submit" class="btn btn-success">Submit</button>
                    </form>
                </div>
            </div>
        </div>
    </div>

    @endsection

    @section('css')
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.3.1/trix.css">
    @endsection

    @section ('js')
    <script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.3.1/trix.js">

    </script>
    @endsection
Hiiro's avatar
Level 2

i have problem too for the layout/main

ErrorException
Undefined variable $user (View: C:\xampp\htdocs\forumMusik\resources\views\layout\main.blade.php) 
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" href="{{route('user.show', $user->id)}}">
              {{ __('Profile') }}
            </a>
            <hr>
            <a class="dropdown-item" href="/logout">
              {{ __('Logout') }}
            </a>


          </div>
Hiiro's avatar
Level 2

@Sinnbeck yes, topic.update is for updating and topic.show is for showing the profile

Sinnbeck's avatar

@Hiiro Please let us focus on one problem at a time.

Ok weird structure.. So a topic is really a user?

And you are expecting the request to have $request->nama. But that form does not have that.. So most likely your validation fails. Same with other fields like home_address

Hiiro's avatar
Level 2

@Sinnbeck eh i'm wrong, its user.update is for updating and user.show is for showing

Hiiro's avatar
Level 2

@Sinnbeck i mean, i should mention user not topic..

my route :

Route::get('users/profile', [UsersController::class, 'show'])->name('users.show');
Route::get('users/edit-profile', [UsersController::class, 'edit'])->name('users.edit-profile');
Route::put('users/profile', [UsersController::class, 'update'])->name('users.update-profile');
Sinnbeck's avatar

@Hiiro So it is the correct view file you posted? If so, it is still missing several input fields..

Sinnbeck's avatar

@Hiiro Well for example your form does not have an input for home_address.. or gender. Just to name a few

Hiiro's avatar
Level 2

@Sinnbeck like this?

 <div class="form-group">
                                <label class="col-lg-3 control-label">Name</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="nama" type="text" value="{{$user->nama}}">
                                </div>
                                @error('nama')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
Sinnbeck's avatar

@Hiiro Exactly. Your example is correct. That is for nama (name I assume). Each of these needs an input of some form

            'nama' => $request->nama,
            'email' => $request->email,
            'date_of_birth' => $request->date_of_birth,
            'home_address' => $request->home_address,
            'gender' => $request->gender,
            'phone_number' => $request->phone_number,
            'genre_fav1' => $request->genre_fav1,
            'genre_fav2' => $request->genre_fav2
Hiiro's avatar
Level 2

so i finished put ''''</input" in all of the fillable input


@extends('layout/main')


@section('title','User Profile | Edit')


@section('container')
<div class="container">
    <div class="row">
        &nbsp;
        <div class="album py-1 bg-light" text-align=center>
            <h1 class="h3 mb-3 fw-normal">Edit Profile</h1>
        </div>
        <hr>

        <div class="container bootstrap snippets bootdey">
            <hr>
            <div class="row">


                <!-- edit form column -->
                <div class="col-md-9 personal-info">
                    <h3>Personal info</h3>

                    <form class="form-horizontal" role="form">
                        <form action="{{route('users.update-profile')}}" method="POST">
                            @csrf
                            @method('PUT')
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Name</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="nama" type="text" value="{{$user->nama}}">

                                    </input>
                                </div>
                                @error('nama')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Email</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="email" type="text" value="{{$user->email}}" placeholder="Email">

                                    </input>
                                </div>
                                @error('email')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Date of Birth</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="date_of_birth" type="text" value="{{$user->date_of_birth}}" placeholder="dd/mm/yyyy">

                                    </input>
                                </div>
                                @error('date_of_birth')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Home Address</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="home_address" type="text" value="{{$user->home_address}}" placeholder="Your Address">

                                    </input>
                                </div>
                                @error('home_address')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Gender</label>
                                <div class="col-lg-8">
                                    <input type="radio" id="gender" name="gender" value="{{$user->gender}}">
                                    <label for="Male">Male</label>
                                    <input type="radio" id="gender" name="gender" value="{{$user->gender}}">
                                    <label for="Female">Female</label><br>
                                    <br>
                                </div>
                                @error('gender')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Phone Number</label>
                                <div class="col-lg-8">
                                    <input class="form-control" name="phone_number" type="text" value="{{$user->phone_number}}" placeholder="Phone Number">

                                    </input>
                                </div>
                                @error('phone_number')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Genre Favorit 1</label>
                                <div class="col-lg-8">
                                    <select name="genre_fav1" id="genre_fav1" class="form control" value="{{$user->genre_fav1}}" required="required">
                                        <option value="0">Pilih Genre Fav 1</option>
                                        <option value="Pop">Pop</option>
                                        <option value="Classic">Classic</option>
                                        <option value="Rock">Rock</option>
                                        <option value="Jazz">Jazz</option>
                                    </select>
                                </div>
                                @error('genre_fav1')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <div class="form-group">
                                <label class="col-lg-3 control-label">Genre Favorit 2</label>
                                <div class="col-lg-8">
                                    <select name="genre_fav2" id="genre_fav2" class="form control" value="{{$user->genre_fav2}}" required="required">
                                        <option value="0">Pilih Genre Fav 2</option>
                                        <option value="Pop">Pop</option>
                                        <option value="Classic">Classic</option>
                                        <option value="Rock">Rock</option>
                                        <option value="Jazz">Jazz</option>
                                    </select>
                                </div>
                                @error('genre_fav2')
                                <div class="alert alert-danger">{{ $message }}</div>
                                @enderror
                            </div>
                            <br>
                            <button type="submit" class="btn btn-success">Submit</a>
                        </form>
                    </form>
                </div>
            </div>
        </div>
        <hr>

    </div>
</div>
@endsection

when i try to submit, nothing happen but

"my route"/users/edit-profile?_token=In6dNcIWIKn8qCXrX2tMbc6AxL83vPjpqGo8MNUR&_method=PUT&nama=Admin&email=admin%40gmail.com&date_of_birth=02%2F02%2F1992&home_address=Indo&gender=&phone_number=085362400352&genre_fav1=Jazz&genre_fav2=Classic
Sinnbeck's avatar
Sinnbeck
Best Answer
Level 102

@Hiiro Is that data in your url? It should be a put request. Most likely you are still getting some sort of validation error

Can you try adding this to your view file? After submitting, see if it shows an error

@if($errors->has())
   @foreach ($errors->all() as $error)
      <div>ERROR!!!! {{ $error }}</div>
  @endforeach
Hiiro's avatar
Level 2

@Sinnbeck it shows:

 syntax error, unexpected end of file, expecting "elseif" or "else" or "endif" (View: C:\xampp\htdocs\forumMusik\resources\views\users\edit.blade.php) 
Hiiro's avatar
Level 2

i add @endif from ur reply

then this appeared

ArgumentCountError
Too few arguments to function Illuminate\Support\MessageBag::has(), 0 passed in C:\xampp\htdocs\forumMusik\vendor\laravel\framework\src\Illuminate\Support\ViewErrorBag.php on line 96 and exactly 1 expected (View: C:\xampp\htdocs\forumMusik\resources\views\users\edit.blade.php) 
Hiiro's avatar
Level 2

@Sinnbeck should i comment the dd first?

because its showing in my url

my url/users/edit-profile?_token=In6dNcIWIKn8qCXrX2tMbc6AxL83vPjpqGo8MNUR&_method=PUT&nama=Admin&email=admin%40gmail.com&date_of_birth=27%2F02%2F1998&home_address=Indo&gender=&phone_number=085362400352&genre_fav1=Jazz&genre_fav2=Rock

and how to getting the value from radio button?

Hiiro's avatar
Level 2

still didn't storing the data to database ..

Hiiro's avatar
Level 2

@sinnbeck after adding the method that @frankielee mentioned

this appeared on my url

/users/edit-profile?_token=fO0vZtl0xCxuiSohb2GhTEC5uYNmFBGGrU0TEVA2&_method=PUT&nama=Admin&email=admin%40gmail.com&date_of_birth=27%2F02%2F1111&home_address=Medan+Selayang&gender=&phone_number=085362400352&genre_fav1=Jazz&genre_fav2=Rock

Please or to participate in this conversation.