【问题标题】:How can i update post with old tags and new tags in laravel 8?如何在 laravel 8 中使用旧标签和新标签更新帖子?
【发布时间】:2021-11-23 16:04:13
【问题描述】:

当我想用帖子的现有标签编辑帖子时,它只显示一个标签,尽管所选帖子中有更多标签。我还想在后期编辑刀片中输入新标签。

发布创建代码

//存储帖子 公共函数 storeNewPost(请求 $request){ //返回 $request->all(); $请求->验证([ 'post_title' => '必需', 'post_details' => '必需', 'category_id' => '必需', '图像' => '图像|最大:15360|尺寸:max_width=4000,max_height=3000' ]); $image = $request->file('post_thumbnail'); $name_gen=uniqid().'.'.$image->getClientOriginalExtension(); Image::make($image)->resize(700,400)->save('frontend/assets/images/post/'.$name_gen); $save_url = '前端/资产/图像/帖子/'.$name_gen; $post = 发布::创建([ 'user_id' => 验证::id(), 'post_uper_title' =>$request->post_uper_title, 'post_title' =>$request->post_title, 'post_sub_title' =>$request->post_sub_title, 'post_details' =>$request->post_details, 'post_slug' =>str_replace(' ', '-', $request->post_title), 'seo_title' =>$request->seo_title, 'seo_descp' =>$request->seo_descp, 'lead' =>$request->lead, 'lead2' =>$request->lead2, '精选' =>$request->精选, 'repoter_name' =>$request->repoter_name, 'division_id' =>$request->division_id, 'district_id' =>$request->district_id, 'category_id' =>$request->category_id, 'post_thumbnail' =>$save_url, 'thumbnail_caption' =>$request->thumbnail_caption, 'thumbnail_alt' =>$request->thumbnail_alt, 'created_at' => Carbon::now(), ]); 如果($post){ $tags = explode(",", implode($request->tags)); $tagNames = []; if (!empty($tags)) { foreach ($tags 作为 $tagName) { $tag = Tags::firstOrCreate(['name'=>$tagName]); 如果($标签) { $tagNames[] = $tag->id; } } } $post->tags()->sync($tagNames); $通知 = 数组( '消息' => '帖子插入成功', '警报类型' => '成功' ); return redirect()->route('all.posts')->with($notification); }别的{ 返回(); } }//结束插入帖子

** 在后期控制器中发布更新代码 **

//编辑帖子 公共功能编辑帖子($news_id){ $editPost = Post::findOrFail($news_id); $postDivisions = Division::get(); $postCats = 类别::get(); $post_dist = 区::get(); $post_tags = 标签::all(); return view('admin.post.edit-post', compact('postDivisions', 'postCats', 'editPost', 'post_dist', 'post_tags')); } //更新帖子 公共函数 updatePost(请求 $request){ $news_id = $request->id; $image = $request->file('post_thumbnail'); $oldimage = $request->oldimage; 如果($图像){ $name_gen=hexdec(uniqid()).'.'.$image->getClientOriginalExtension(); Image::make($image)->resize(700,400)->save('frontend/assets/images/post/'.$name_gen); $save_url = '前端/资产/图像/帖子/'.$name_gen; 如果($旧图像){ 取消链接($oldimage); } Post::findOrFail($news_id)->update([ 'user_id' => 验证::id(), 'post_uper_title' =>$request->post_uper_title, 'post_title' =>$request->post_title, 'post_sub_title' =>$request->post_sub_title, 'post_details' =>$request->post_details, 'post_tags' =>$request->post_tags, 'post_slug' =>$request->post_slug, 'seo_title' =>$request->seo_title, 'seo_descp' =>$request->seo_descp, 'lead' =>$request->lead, 'lead2' =>$request->lead2, '精选' =>$request->精选, 'repoter_name' =>$request->repoter_name, 'division_id' =>$request->division_id, 'district_id' =>$request->district_id, 'category_id' =>$request->category_id, 'post_thumbnail' =>$save_url, 'thumbnail_caption' =>$request->thumbnail_caption, 'thumbnail_alt' =>$request->thumbnail_alt, 'created_at' => Carbon::now(), ]); $通知 = 数组( '消息' => '发布更新成功', '警报类型' => '成功' ); return redirect()->route('all.posts')->with($notification); }别的{ Post::findOrFail($news_id)->update([ 'user_id' => 验证::id(), 'post_uper_title' =>$request->post_uper_title, 'post_title' =>$request->post_title, 'post_sub_title' =>$request->post_sub_title, 'post_details' =>$request->post_details, 'post_tags' =>$request->post_tags, 'post_slug' =>$request->post_slug, 'seo_title' =>$request->seo_title, 'seo_descp' =>$request->seo_descp, 'lead' =>$request->lead, 'lead2' =>$request->lead2, '精选' =>$request->精选, 'repoter_name' =>$request->repoter_name, 'division_id' =>$request->division_id, 'district_id' =>$request->district_id, 'category_id' =>$request->category_id, 'post_thumbnail' =>$oldimage, 'thumbnail_caption' =>$request->thumbnail_caption, 'thumbnail_alt' =>$request->thumbnail_alt, 'created_at' => Carbon::now(), ]); $通知 = 数组( '消息' => '发布更新成功', '警报类型' => '成功' ); return redirect()->route('all.posts')->with($notification); } }//结束更新帖

**后期编辑刀片的标签代码**

         <div class="form-group">
            <label class="form-control-label">{{__('Post Tags')}}</label>
                                                    
             <input type="text" class="w-100" id="tagnames" name="tags[]" data-role="tagsinput" 
             @foreach ($editPost->tags as $tags) value="{{$tags->name}}" @endforeach>
                                                    
       </div>

【问题讨论】:

    标签: php laravel tags


    【解决方案1】:
     // try this 
     <input type="text" class="w-100" id="tagnames" name="tags[]" data-role="tagsinput"  value="@foreach($editPost->tags as $tags){{$tags->name.','}}@endforeach">
    

    【讨论】:

    • 谢谢,Mostafa Hana,您的代码运行良好,正是我想要的。非常感谢您的光临。
    【解决方案2】:

    如果您的模型中有 manyToMany 关系,请在更新方法上使用 sync() 方法。

    示例: $post-&gt;tags()-&gt;sync($request-&gt;tags);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-01
      • 2021-11-07
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      相关资源
      最近更新 更多