2016-12-17 2 views
0

Я использую следующий код для данных INSER в таблице:Вставить данные в таблицу Laravel?

$order = new OrderProduct(); 
     $order->save([ 
      "created_at" => Carbon::now(), 
      "user_id" => $user->id, 
      "note" => $request->note 
     ]); 

Модель OrderProduct является:

class OrderProduct extends Model 
{ 

    public $timestamps = true; 

    protected $table = "class OrderProduct extends Model 

{

public $timestamps = true; 

protected $table = "order_product"; 

protected $fillable = [ 
    'order_id', 'status', 'user_id', 'note' 
];"; 

    protected $fillable = [ 
     'order_id', 'status', 'user_id', 'note' 
    ]; 
} 

Почему я всегда получаю user_id равно 0 в таблице order_product ?

Я попытался также заменить $user->id к реальной стоимости:

$order->save([ 
       "created_at" => Carbon::now(), 
       "user_id" => 2, 
       "note" => $request->note 
      ]); 

Но снова получить нулевое значение в этом поле.

Тип user_id является:

| user_id | int(11)  | NO |  | NULL 
+0

Что произойдет, если вы используете вставить запись с чистым SQL запросом? –

ответ

1

Попробуйте добавить это следующим образом:

$order = new OrderProduct(); 
$order->user_id = 2; 
$order->note = $noteHere; 
$order->save(): 

По умолчанию Laravel добавляет метку времени к created_at и updated_at колонн.

Сообщите мне, если это работает.

+0

Да, это работает, спасибо! – Huligan

+0

Отлично! Рад был помочь. –

0

controller.php

 $name = $request->name; 
    $email = $request->email; 
     $data = array(
      "name" => $name, 
      "email"=> $email 
      ); 

     $q = DB::table('users')->insert($data);