POV
POV

Reputation: 12005

Why Laravel does not insert row?

Inserting operation is:

$r = [
'idVisitor' => 4,
'lastname' => 'fg',
'firstname' => '11',
'document_number' => '444',
'idEvent' => 2
];

$g = Visitor::insert($r);

Model is:

class Visitor extends Model
{
    public $timestamps = false;

    protected $table = 'visitors';

    protected $fillable = ['firstname', 'lastname', 'middlename', 'document_number', 'pincode', 'ckecked', 'date_cheked', 'user_cheked', 'company', 'code', 'status', 'idEvent', 'date', 'birthday'];

    protected $primaryKey = 'idVisitor';

}

if to do this:

$g = Visitor::insert($r);
var_dump($g);

It gives me true, so Laravel considers that it was committed.

Dump SQL is:

CREATE TABLE `visitors` (
  `idVisitor` int(11) NOT NULL,
  `firstname` varchar(45) NOT NULL,
  `lastname` varchar(45) NOT NULL,
  `middlename` varchar(45) DEFAULT NULL,
  `document_number` varchar(45) NOT NULL,
  `pincode` varchar(10) DEFAULT NULL,
  `ckecked` int(11) DEFAULT '0',
  `date_cheked` date DEFAULT NULL,
  `user_cheked` int(11) DEFAULT NULL,
  `company` varchar(100) DEFAULT NULL,
  `code` varchar(100) DEFAULT NULL,
  `idEvent` int(11) NOT NULL,
  `status` int(11) NOT NULL DEFAULT '1',
  `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `visitors`
--
ALTER TABLE `visitors`
  ADD PRIMARY KEY (`idVisitor`,`idEvent`),
  ADD UNIQUE KEY `document_number_UNIQUE` (`document_number`),
  ADD UNIQUE KEY `pincode_UNIQUE` (`pincode`),
  ADD UNIQUE KEY `code_UNIQUE` (`code`),
  ADD KEY `fk_visitors_users1_idx` (`user_cheked`),
  ADD KEY `fk_visitors_events1_idx` (`idEvent`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `visitors`
--
ALTER TABLE `visitors`
  MODIFY `idVisitor` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `visitors`
--
ALTER TABLE `visitors`
  ADD CONSTRAINT `fk_visitors_events1` FOREIGN KEY (`idEvent`) REFERENCES `events` (`idEvent`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `fk_visitors_users1` FOREIGN KEY (`user_cheked`) REFERENCES `users` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

I use MySQL 5.0.12

Also I tried:

 $g = new Visitor();
    $g->lastname = 4;
    $g->middlename = 4;
    $g->document_number = 444;
    $g->firstname = 4;
    $g->idEvent = 2;
    $g->save();

Upvotes: 0

Views: 99

Answers (2)

Skeldar
Skeldar

Reputation: 153

$g = new Visitor(); call class without '()', so $g = new Visitor;

Upvotes: 1

Anandu Krishna
Anandu Krishna

Reputation: 123

please use

$g = new Visitor();

$g->idVisitor = 4;
$g->firstname= 4;
$g->idVisitor = 4
$g->save();

this is another way

Upvotes: 1

Related Questions