вставка данных в базу данных laravel 5.6 отношения принадлежатсманой сводной таблице - PullRequest
0 голосов
/ 25 июня 2018

Мне интересно знать, как вставить данные в сводную таблицу при использовании отношения принадлежности к многим, я могу сейчас читать данные из базы данных, но я не знаю, как хранить данные в базе данных, и в моей таблице invoice_product приведена модель кода invoce.:

   class Invoice extends Model
{
    protected $fillable = ['title','description','client_id','product_id'];
    public function user() {
        return $this->hasOne('App\Client','id','client_id');
    }
    public function products()
    {
        return $this->belongsToMany('App\Product', 'invoice_product', 'invoice_id')
            ->withPivot('product_quantity')
            ->as('invoice_products_pivot');

    }
}

контроллер счета:

public function store(Request $request)
{
    //Validate
    $request->validate([
        'title' => 'required|min:3',
        'description' => 'required',
    ]);

    $invoices = Invoice::create([
        'title' => $request->title,
        'description' => $request->description,
        'client_id' => $request->client_id,
        'product_id' => $request->product_id,

    ]);
    return redirect('admin/invoices/' . $invoices->id);
}

это сохраняет счет в таблицу счетов, но я хочу получить client_id и product_id или идентификаторы, потому что это должно быть несколько продуктов и сохранить ихв таблицу invoice_product, миграция которой происходит здесь

 public function up()
{
    Schema::create('invoice_product', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('client_id');
        $table->integer('product_id');
        $table->integer('product_quantity');
        $table->timestamps();
    });
}

1 Ответ

0 голосов
/ 25 июня 2018

чтобы вставить данные в промежуточную или сводную таблицу для многих отношений, вы можете использовать метод присоединения eloquent, как показано ниже

$invoice->products()->attach($product_id)
$product->invoices()->attach($invoice_id)

, но миграция вашего продукта счета-фактуры выглядит немного странно, как и должно быть

    public function up()
{
    Schema::create('invoice_product', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('invoice_id'); // id of the invoice table
        $table->integer('product_id'); // id of the product table
        $table->integer('product_quantity'); // client_id should go to the invoice table
        $table->timestamps();
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...