在Laravel中获取数据为空

时间:2019-01-06 20:21:24

标签: laravel laravel-5.7

嗨,我是Laravel的新手,到目前为止,我取得了不错的进步。现在,我的头被堵住了,请给我一些指导或帮助。

我正在从单选按钮获取数据,但“获取数据”为空。我需要将此数据(付款)填写到一个现有的数据库中,并且得到“从空值创建默认对象”,并且我同意Laravel的观点:)我想,我的知识不足在这里阻止了我。

谢谢。

这是GET和POST数据

GET Data empty
POST Data
_token = "72nrnI7Y7xuIQJe6LZPLGLzNsAv6ZZbY29zkjcIr"
pay = "CC"`

这是模型

namespace App;
use Illuminate\Database\Eloquent\Model;
use DB;
use Auth;
class DAddress extends Model
{
 protected $table='dAddress';
 protected $fillable = ['payment_method'];
 public function createPay()
 {
   $user = Auth::user();
   $order = $user->daddress()->create([
   'payment_method' => paymentMethod()
    ]);
 }
}

这是控制器

public function paymentMethod(Request $request) {
    $address->payment_method = $request->pay;
    DAddress::createPay();
    Cart::destroy();
    return redirect('abc');
}

这是我获取HTML数据的地方

<form action="{{url('/paymentMethod')}}" method="post">
<input type="hidden" value="{{csrf_token()}}" name="_token"/>

<div class="form-group">
        <div class="col-md-6">
            <!-- First name -->
            <input type="radio"  class="form-control"  name="pay" 
            value="CC"><i class="fa fa-credit-card"></i> Credit Card
            <br>  <br>
            <input type="radio"  class="form-control"  name="pay" 
            value="PP"><i class="fa fa-paypal"></i> Paypal
            <br>  <br>
            <input type="radio"  class="form-control"  name="pay" 
            value="BT"><i class="fa fa-university"></i>  Bank Transfer
        </div>
</div>  
<input type="submit" class="btn btn-primary" value="Move to Last Page" />

这是我在下面的函数中添加的User.php。

public function daddress()
    {
        return $this->hasMany(DAddress::class);
    }

2 个答案:

答案 0 :(得分:0)

我不明白您要使用此行做什么$ address-> payment_method = $ request-> pay; 当您说$ address-> payment_method时,什么是$ address对象持有的内容,而您试图访问的payment_method在哪里,为什么不做这样的事情$ payment_method = $ request-> pay,除非您将$ payment_method设置为全局变量

答案 1 :(得分:0)

如果您使用的是laravel创建方法,则可以执行以下操作:$ payment_method = App \ createPay :: create(['payment_method'=> $ request-> pay]); 否则您可以像这样实例化模型

$pay =createPay();
$pay->payment_method=$request->pay;
$pay->save();

我希望您能成为控制器中的逻辑,我会在控制器中完成类似的操作 公共功能createPay(Request $ request){

 $user = Auth::user();
$id=$user->id;
$payment=createPay::find($id);
$payment->payment_method=$request->pay;
$payment->save();
return redirect('abc');

}

我在这里用过laravel雄辩的话,那就是如果您想更新记录,我不知道这是否接近您想要的。