Laravel - create中的变量返回0

时间:2016-07-23 15:26:19

标签: php laravel laravel-5.2

以下是我的代码中的问题。我有这个模型。传递的参数是-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited awk '/--dport 22 -j ACCEPT/{print $0 RS "-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT" "-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT" "-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT" } 1' > tmp && mv tmp /home/user/iptables.txt 。 但这是我的问题。当我调用$uid=1时,它会插入0和0作为pid和uid的值。

$id=1

以下是我的输出视图的create

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Cart extends Model
{

  protected $table = 'cart';
  protected $fillable = [
      'pid', 'uid'
  ];

  public $uid=0;
  public function __construct($uid)
  {
    $this->uid=$uid;
    var_dump($this->uid); // int(1) array(2) { ["pid"]=> string(1) "1" ["uid"]=> int(1) }
  }

  public function add($id)
  {
    $cart = $this::create(['pid' => $id,'uid' => $this->uid]);
    $cart->save();
    var_dump($id,$this->uid); //string(1) "1" int(1)
  }



}

我是Laravel的初学者,我已经提到了很多没有帮助的laravel文档。

1 个答案:

答案 0 :(得分:1)

这些方法是不必要的,因为模型已经拥有与数据库交互的幕后方法,这就是ORM的作用。删除已添加的两种方法,并将此逻辑添加到控制器。

确保首先使用控制器顶部的命名空间

use App\Cart;

现在在你的控制器方法

$cart = new Cart;
$cart->uid = $request->uid;
$cart->pid = $request->pid;
$cart->save();

您可以通过$ cart-&gt; id

检索购物车ID