Laravel Как использовать переменные из другого файла

93
01 августа 2019, 23:30

Мне нужно передать параметр $table_name = 'server_1_users' в файл User.php как это могу сделать ? немного запутался...

MainController.php

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
use Illuminate\Foundation\Auth\User;
class MainController extends Controller
{
    public $table_name = 'server_1_users';
}

User.php

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Http\Controllers\MainController;
class User extends Authenticatable
{
    public $table;
    public function __construct()
    {
      $this->table = $table_name;
    }
}
Answer 1

вариантов много, например так

MainController.php

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
use Illuminate\Foundation\Auth\User;
class MainController extends Controller
{
    public $table_name = 'server_1_users';
    public function doSomething()
    {
        $user = new User($this->table_name);
    }
}

User.php

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Http\Controllers\MainController;
class User extends Authenticatable
{
    public $table;
    public function __construct($table_name)
    {
      $this->table = $table_name;
    }
}

или так

MainController.php

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
use Illuminate\Foundation\Auth\User;
class MainController extends Controller
{
    public static $table_name = 'server_1_users';
}

User.php

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Http\Controllers\MainController;
class User extends Authenticatable
{
    public $table;
    public function __construct()
    {
      $this->table = MainController::$table_name;
    }
}
READ ALSO
Не загружается вторая страница товаров

Не загружается вторая страница товаров

В ходе работы с интернет-магазином Wordpress на плагине WooCommerce столкнулся с проблемойКогда я нажимаю на фильтр по определенному свойству товара...

98
Как вывести строку таблицы sqlite3 PDO?

Как вывести строку таблицы sqlite3 PDO?

Искал, пишут, что как бэ нельзя без бубнаЭто ведь самое важное, тупо показать статью

104
Получить записи со страницы Facebook

Получить записи со страницы Facebook

Пытаюсь через PHP SDK получить записи со страницы в Facebook, создателем которой я являюсь

122
Retrofit, PHP. Получить данные юзера с бд

Retrofit, PHP. Получить данные юзера с бд

Имеется две таблицы, одна с пользователями и другая с их данными (заметками)Использую retrofit, но не могу получить данные со второй таблицы (заметки)

133