Jump to content
php.lv forumi
Sil Vestrs

Edit post funkcija iekš Laravel 5.6 frameworka.

Recommended Posts

Sveiki,

Jau kādu laiku mēģinu palaist edit post funciju izmantojot bootsrap modal'u.

Varbūt kāds var ieraudzīt šeit problēmu un palīdzēt to atrisināt....

Modal izsaukšanas poga:

<a href="#" data-toggle="modal" data-target="#editPost" class="edit">Edit</a>

Modal:

<div class="modal fade" tabindex="-1" role="dialog" id="editPost">
          <div class="modal-dialog">
          
           <form action="{{ route('editPost') }}" method="post">
            <div class="modal-content">
              
              <div class="modal-header">
                    <h5 class="modal-title">Edit Post</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                    </button>
              </div>
              
              <div class="modal-body">           
              <form>
                  <div class="form-group">
                      <label for="post-body">Edit the post</label>
                      
                      <article class="post" data-postid="{{ $post->id }}">
                      <textarea class="form-control" name="body" id="editPost" rows="5">{{ $post->body }}</textarea>
                      </article>
                      
                  </div>
              </form>
              </div>
              
              <div class="modal-footer">
                <button type="submit" class="btn btn-primary">Save changes</button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                <input type="hidden" value="{{ Session::token() }}" name="_token">
              </div>
              
            </div>
            </form>
            
          </div>
        </div>

P.S- tāpatās $post->body man attēlo tikai 1. postu nevis konrētā- uz kura tiek nospiesta edit poga.

Controllers:

public function postEditPost(Request $request)
  {
      $this->validate($request,[
          'body' => 'required|max:1000'
      ]);
      
      $post = Post::find($request['postId']);
      $post->body = $request['body'];
      $post->update();
      return response()->json(['message' => 'Post edited'],200);
  }
}

Route:

 Route::post('/editpost',[
        'uses' => 'PostController@postEditPost',
        'as' => 'editPost',
        'middleware' => 'auth'
    ]);

Saņemu erroru: 
$post->body = $request['body'];  

"Creating default object from empty value"

Please help!

Edited by Sil Vestrs

Share this post


Link to post
Share on other sites

Sāksim ar bāzisko parbaudi ko skatā ar 

{{ dd($post) }}

ko teu no modeļa dod ārā ja nekā nav roc arā savu kvēriju jo pēc loģikas toko tu rādi butu jabut modelis::where(xxx)->firstorfail()  ... un iesaku RFTM.

Edited by Faks

Share this post


Link to post
Share on other sites

Kā jau minēja iepriekš tev netiek padots postId un zemāk esošā rinda atgriež null;

$post = Post::find($request['postId']);

Vari pārbaudīt request datus:

dd($request->all());

Pāris ieteikumi skatoties uz kodu.
1. Saņemt datus no request pareizāk būtu:

$request->input('postId', 0);

Pēc tam kad sūtāmie dati kļūs lielāki būs vieglāk, jo šādi varēs piekļūt daudz līmeņu datiem. Piemēram, ja sūtītu postā

{
	postId:20,
	postName: 'Post name',
	comment: {
		creatorId: 10,
		text: 'Comment'
	}
}
  

Tad piekļūt Comenta creatorId varētu:

$request->input('comment.creatorId', 0);

2. Html'ā id pieņemts rakstīt kebab case (edit-post), nevis camel case (editPost)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×