嗨,我是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);
}
答案 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雄辩的话,那就是如果您想更新记录,我不知道这是否接近您想要的。