I need to update mysql table when someone use my referral code which is store in my route using cookie.
i want to check if the cookie ref is available , if it is available two table Wallet and Referral will be updated with the transaction id and the balance on the wallet. I keep getting a success message which means the transaction is working but the table is not update. Below is my code. Thanks
Route
Route::redirect('/', '/index', 301);
Route::get('/index', function() {
if(!empty($_GET['ref'])) {
$ref = $_GET['ref'];
setcookie('ref', $ref, time() + (86400), "/");
// return redirect()->route('power.index', ['ref' => $ref]);
// print_r($_COOKIE['ref']);
return redirect()->route('power.index');
} else {
return view('index');
}
})->name('index');
Referral Table
namespace App;
use Illuminate\Database\Eloquent\Model;
class Referral extends Model
{
//
protected $fillable = [
'reftrans',
'refuserid',
'refamount',
'reftype'];
protected $table = 'referrals';
}
UserTable
namespace App;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements JWTSubject
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'fname', 'lname', 'email', 'password', 'phone', 'gLocatorID', 'role_id'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
protected $with = [
'wallet', 'vendor'
];
// Rest omitted for brevity
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
public function wallet()
{
return $this->hasOne(Wallet::class);
}
public function vendor() {
return $this->hasOne(Vendor::class);
}
// public function getPhoneAttribute() {
// return "+234" . $this->phone;
// }
}
Wallet Table
namespace App;
use Illuminate\Database\Eloquent\Model;
class Wallet extends Model
{
protected $fillable = [
'user_id', 'balance'
];
public function owner()
{
return $this->belongsTo(User::class);
}
public function transactions()
{
return $this->hasMany(WalletTransaction::class);
}
}
Controller
class PowerController extends Controller
{
if(\Auth::check()) {
$rUserID = \Auth::id();
dd(cookie::get['ref']);
dd($ref);
if (isset($ref)){
if ($ref == $rUserID){
//define amount n type
$amt = 25.00;
$type = 'Power';
//Updating Wallet
$wallet = \App\Wallet::find($user_id)->rUserID;
$wallet->balance = $wallet->balance + $amt;
$wallet->save();
//Updating Referral
$referral = new \App\Referral;
$referral->reftrans = $powerTransaction->id;
$referral->refuserid = $rUserID;
$referral->refamount = $amt;
$referral->reftype = $type;
$referral->save();
}
}else {
//do nothing
}else{
//do nothing
}
}
```
Referral link
<input type="text" class="form-control" value="" id="myInput">
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire