laravel - 如何将路由变量值传递给模型类方法
问题描述
在路线中,我通过了 subscription_id ( http://admin.commonground.localhost/members/invite/31 )。我希望这个 subscription_id 保存在另一个表中。如何得到这个?目前没有订阅ID保存在数据库中,其他值保存没有问题。请帮忙
我的代码在这里
public function send($people)
{
// $subscription = new Subscription();
// $company = new Company();
// $companyUser->company()->getForeignKey(), $company->getKey()
// $subscription_id = $this->setAttribute($subscription_id);
try {
foreach($people as $person) {
$email = trim( $person['email'] );
$name = trim( Utility::hasString(trim($person['name'])) ? $person['name'] : '');
if(!Utility::hasString($email)){
continue;
}
$instance = new static();
$instance->getConnection()->transaction(function () use ($instance, $email, $name) {
try{
$found = $instance->where('email', '=', $email)->first();
if(!is_null($found) && $found->exists){
$found->delete();
}
$invite_status = 'pending';
$subscription_id = '31';
$instance->setAttribute('email', $email);
$instance->setAttribute('name', $name);
$instance->setAttribute('token', $instance->createNewToken());
$instance->setAttribute('subscription_id', $subscription_id );
$instance->setAttribute('invite_status', $invite_status);
$instance->save();
Mail::queue(new SignupInvitationMail($instance));
}catch(ModelValidationException $e){
}catch(Exception $e){
}
});
}
}catch (Exception $e) {
throw $e;
}
}
解决方案
如果您的方法是:
获取 : http://admin.commonground.localhost/members/invite/{subscription_id}
那么你可以直接使用subscriptionId,如下所示:
public function yourControllerMethod($subscriptionId)
{
// $subscriptionId = 31;
}
如果您的方法是发布的,那么您需要将您的密钥定义为有效负载subscription_id => 123
,您将使用Request::Get('subscription_id')
希望这会有所帮助,谢谢