我正试着拯救很多很多人的幼体.我已经试了将近7个小时了.但还是解决不了这个问题.

以下是自定义迁移表:

public function up()
    {
        Schema::create('customer', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
            $table->string("customer_phone", 255);
        });
    }

以下是我的Send_Messages迁移表:

 public function up()
    {
        Schema::create('send_messages', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
            $table->unsignedBigInteger("template_id");
            $table->unsignedBigInteger("sender_number_id");
            // $table->unsignedBigInteger("cutomer_id");
            $table->foreign("template_id")->references("id")->on("messagecontent")->onDelete("cascade");
            $table->foreign("sender_number_id")->references("id")->on("sendernumber")->onDelete("cascade");
           // $table->foreign("customer_id")->references("id")->on("customer")->onDelete("cascade");

        });
    }

以下是我的数据透视表:

Schema::create('customer_send_message', function (Blueprint $table) {
    $table->id();
    $table->timestamps();
    $table->foreignId("send_messages_id")->constrained("send_messages");
    $table->foreignId("customer_id")->constrained("customer");
});

这是CustomerModel

class Customer extends Model
{
    use HasFactory;

    protected $table = "customer";

    protected $fillable = [ "customer_phone" ];

    public function sendmessage () {
        return $this->belongsToMany(SendMessage::class, "customer_send_message");
    }

}

这是我的SendMessageModel

class SendMessage extends Model
{
    use HasFactory;

    protected $table = "send_messages";

    protected $fillable = [
        "customer_id",
        "template_id",
        "sender_number_id"
    ];

    public function messageContent() {
        return $this->belongsTo(MessageContentModel::class);
    }

    public function senderNumber() {
        return $this->belongsTo(SendNumberModel::class);
    }

    public function customer() {
        return $this->belongsToMany(Customer::class, "customer_send_message");
    }

}

以下是我正在try 保存的控制器:

    public function send(Request $request) {
        $sendmessage = new SendMessage();

        $sendmessage->template_id = $request->get("template_id");
        $sendmessage->sender_number_id = $request->get("sender_number_id");


        $customers = Customer::find(1);
        $sendmessage->customer()->attach($customers);
        $sendmessage->save();
//        $send->save();
        return redirect("")->with("message", "Sms sent!");
    }

我想要获得多个数据,然后我想要保存它,就像Django许多任何字段一样.实际上,我曾经是Django的开发人员,最近我改用了laravel.我不知道那么多事情.那么有没有解决这个问题的办法呢?我只想存钱.

我在保存时出错:

SQLSTATE[42S22]:未找到列:1054‘field list’中的未知列‘Send_Message_id’

我不知道为什么我会收到这个错误!!

推荐答案

由于laravel的"约定重于配置"策略,它往往会对您的列名做出一些假设.如果列名与这些假设不匹配,就会遇到这样的问题.IIRC,这里的问题是您的类名是SendMessage,Laravel将从它推导出透视表上的外键是send_message_id,但是它是send_messages_id.

您应该能够通过以SendMessage为单位更改关系定义来修复此问题:

public function customer() {
  return $this->belongsToMany(
    Customer::class, 
    'customer_send_message', 
    'send_messages_id'
  );
}

Php相关问答推荐

如何在Woocommerce中禁用机器人添加到推车?

Laravel:从匹配的数组数据中获取记录

我如何知道BaseController中当前运行的是哪个控制器?

在没有symfony应用程序的情况下使用安全Bundle 包时,缺少配置构建器类

获取并判断WooCommerce用户订阅结束日期

只收取WooCommerce中最高的运费

如何在Livewire 3 Form类中做依赖注入?

如何在execute语句中使用存储过程参数?

如何使用索引加速和优化MySQL搜索

创建一个Woocommerce我的帐户订单页面,仅显示已完成的订单

基于服务器的不同地平线配置

在WooCommerce中以编程方式添加特定产品后,将价格设置为零

扩展 WooCommerce 类触发未捕获错误:未找到WC_Coupon类

如何在 apache Laragon - laravel 10 中允许方法 DELETE?

Shopware 6 AuthControllerDecorator已弃用

URL中包含"&"与DirectoryIterator不兼容

基于WooCommerce中的产品变体自定义感谢页面跳转

PHP:如何将多列sql查询结果转换成数组

如何在 Laravel 中修改嵌套数组的键?

Xdebug 不会在断点处停止