当前位置: 首页 > 知识库问答 >
问题:

如何在post_表和tags表中插入标记?

汝开畅
2023-03-14

我想在标签表中插入标签,也可以在post创建页面的post_标签表中插入标签。当我创建一个新的贴子时,标签插入到标签表中,而不是插入到贴子标签表中。它显示的日期时间格式无效。

SQLSTATE[22007]:无效的日期时间格式:1366不正确的整数值:第1行的列anusondhan.post_tag.tag_id的“start,tas”(SQL:插入到post_tag(post_id,tag_id)值中(20,start,tas))


            //Store Post
            public function storeNewPost(Request $request){
                //return $request->all();
                $request->validate([
                    'post_title' => 'required',
                    'post_details' => 'required',
                    'category_id' => 'required',
                    'image' => 'image|max:15360|dimensions: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 = 'frontend/assets/images/post/'.$name_gen;

                $post = Post::create([
                    'user_id' => Auth::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,
                    'featured' =>$request->featured,
                    '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(),
                ]);

                if($post){
                    $tags = explode(",", implode($request->tags));
                    $tagNames = [];
                    if (!empty($tags)) {
                        foreach ($tags as $tagName)
                        {
                        $tag = Tags::firstOrCreate(['name'=>$tagName]);
                        if($tag)
                        {
                            $tagNames[] = $tag->id;
                        }
                        }
                        
                    }
                    $post->tags()->sync($request->tags);
                    $notification = array(
                        'message' => 'Post Inserted Successfully',
                        'alert-type' => 'success'
                    );
                    return redirect()->route('all.posts')->with($notification);
                }else{
                    return back();
                }             

            }//end insert post

**这是我的桌子**


        public function up()
        {
            Schema::create('tags', function (Blueprint $table) {
                $table->bigIncrements('id');
                $table->string('name');
                $table->string('slug')->nullable();
                $table->longText('description')->nullable();
                $table->longText('tag_thumb')->nullable();
                $table->text('thumb_caption')->nullable();
                $table->text('thumb_alt')->nullable();
                $table->softDeletes();
                $table->timestamps();
            });
        }


**这是我的邮政标签表**


        public function up()
        {
            Schema::create('post_tag', function (Blueprint $table) {
                $table->increments('id');
                $table->unsignedBigInteger('post_id')->nullable();
                $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
                $table->unsignedBigInteger('tag_id')->nullable();
                $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
                $table->timestamps();
            });
        }


共有2个答案

祁奇略
2023-03-14

如果您的模型中有多个关系,请在控制器中的更新函数上使用sync()方法。

示例:$post-

如果你需要更多的帮助告诉我。

端木明贤
2023-03-14

我认为您需要使用$tagNames数组而不是$request-

$post->tags()->sync($tagNames);

根据Laravel文档,sync()方法需要一个ID数组:https://laravel.com/docs/8.x/eloquent-relationships#syncing-联想

 类似资料:
  • form标记列表是Struts UI标记的子集。 这些标记有助于呈现Struts Web应用程序所需的用户界面,并可分为三类。 本章将介绍所有三种类型的UI标签 - 简单的UI标签 我们已经在我们的示例中使用了这些标记,我们将在本章中对它们进行刷新。 让我们看一个带有几个简单UI标签的简单视图页面email.jsp - <%@ page language = "java" contentType

  • 我试图在表中插入值,它说的是错误,请告诉我哪里错了,这是我的代码,它说的是请重试 你能指导我吗?我以为问题出在约会上

  • 问题内容: 我面临一个问题,我有两个文件。然后,我想加入一个文件,但每个文件都加入一页。 我看到了下面的一些技巧,但我不知道他们是最好的,因为我的第一个文件有3个波段:,和。第二个有和。 所以我想尽可能保留这种格式,因为摘要中有分页计数器。 我已经尝试过了,但是我的第二页是空白的,高度为5厘米。 列表页=新的ArrayList <>(); 那我该怎么办? 问题答案: 要将多个JRXML添加到一个报

  • PPT/Excel 中插入动态交互图表,需要使用Office应用商城插件。 1) 使用Office2013或以上版本创建一个PPT文档(Excel也可以) 2) 点击“插入”选项卡,再点击“应用商店”按钮打开商店窗口。 3) 在商店窗口中搜索“图表秀”,找到名为“图表秀-PPT动态展示”的外接程序,点击添加即可。 4) 以后再要使用此插件时只需点击“我的加载项”,即可找到并直接使用此插件了。 5)

  • 问题内容: 在MySQL中,我会使用 但这会导致SQLite错误。SQLite的正确语法是什么? 问题答案: 在此之前,已经回答了这一问题:是否可以一次在SQLite数据库中插入多行? 要回答您对OMG Ponies的评论,请回答: 从3.7.11版本开始,SQLite确实支持多行插入。理查德·希普(Richard Hipp)评论:

  • 我有两个表和一个表来映射我以前的两个表的关系,我如何使用Spring data JPA高效自动地将数据插入到映射的表中?下面是表结构。 用户(id(PK),名称,电子邮件,userRoleId)角色(id(PK),名称,userRoleId)用户角色(id(PK),userId(FK<-User),roleId(FK<-Role))