Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Можно ли как-то сгенерировать токен без пароля?
Суть такова что у меня регистрация пользователя только лишь с одной почтой, и после должна быть аутентификация...
у меня тоже самое и с fb и с google, может быть это из-за того что эти руты в группе api ?
Route::group(['middleware' => ['web']], function () {
// Route::get('{provider}/redirect', 'RegisterController@redirectToProvider');
// Route::get('{provider}/callback', 'RegisterController@handleProviderCallback');
Route::get(
'/socialite/{provider}',
[
'as' => 'socialite.auth',
function ( $provider ) {
return \Socialite::driver( $provider )->redirect();
}
]
);
Route::get('/socialite/{provider}/callback', function ($provider) {
$user = \Socialite::driver($provider)->user();
dd($user);
});
Route::apiResource('register', 'RegisterController');
});
Да вроде правильный в настройках в поле Действительные URL-адреса для перенаправления OAuth довил url на callback функцию или куда-то не туда надо?
Что я делаю не правильно, что с fb, что с gmail не получается сделать ...
Route::get('redirect/{provider}', 'RegisterController@redirectToProvider');
Route::get('callback/{provider}', 'RegisterController@handleProviderCallback');
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
dd($user);
}
'google' => [
'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT'),
],
'facebook' => [
'client_id' => env('FB_CLIENT_ID'),
'client_secret' => env('FB_CLIENT_SECRET'),
'redirect' => env('FB_REDIRECT'),
],
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT=http://localhost:8000/api/callback/google
FB_CLIENT_ID=
FB_CLIENT_SECRET=
FB_REDIRECT=http://localhost:8000/api/callback/facebook
в developer console callback тот-же что и в env
вопрос я более детально изложил в этой теме https://laravel.ru/forum/viewtopic.php?id=3255
Помогите собрать массив со всеми вложенностями children
$nodes = File::where('parent_id', '0')->get();
мне надо тоже самое что и если бы я делал так
$nodes = File::where('parent_id', '0')->with('children.children')->get();
только я не знаю какая вложенность
dump($this->createTree($nodes, $arr));die;
private function createTree($nodes, &$arr)
{
foreach ($nodes as $k => $item) {
if ($item->parent_id === 0) {
$arr[$item->id] = $item->toArray();
}
$this->loop($item->children()->get(), $arr);
}
return $arr;
}
private function loop($items, &$arr)
{
foreach($items as $item)
{
if (isset($arr[$item->parent_id])){ // не понимаю как тут заносить когда глубина больше одного
$arr[$item->parent_id][$item->id] = $item->toArray();
}
dump($item->children()->get());
$this->loop($item->children()->get(), $arr);
}
}
Всё же может кто-то знает как функция with работает из нутри когда указываешь children.children ?
дерево каталогов и файлов
основные параметры parent_id, is_folder = boolean
я понимаю что это рекурсия надо вызывать туже функцию пока есть children как присваивать значение обьекта чтобы оно было в ключе 'children', и в виде дерева...
Подскажите как сделать тоже самое только своими ручками?
with('children.children.children');
как пройти все имеющийся вложености $obj->children();
with функция делает всё отлично просто вложеность уровней неизвестно сколько будет...
их много но первая которая выстреливает вот
public function up()
{
Schema::create('person', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('email')->unique();
$table->string('phone')->nullable();
$table->string('nin')->nullable();
$table->date('dob')->nullable();
$table->timestamps();
});
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('password');
$table->string('role');
$table->tinyInteger('active')->default(1);
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('person');
Schema::dropIfExists('users');
}
у меня пытается пересоздать таблицы и получаю ошибку что такая таблица уже существует хотя в down указано dropIfExist
Как вы меняете reference , foreign key когда оказывается например как в моем случаи связь должна быть на другую таблицу?
спасибо этот вариант отлично сработал
есть еще одна проблемка почему-то не возвращает по связи objects из objects_files
$fileNodes = FileNode::where('parent_id', '0')
->with('children.children.children.children.children')
->get();
$fileNodes->load('objects')
public function objects()
{
return $this->belongsToMany(Objects::class, 'files_objects');
}
хотя со стороны objects файлы возвращает там тоже самое.
мне надо отдать уже отфильтрованый json
Подскажите каким образом можно отфильтровать children'ov
чтобы с полем is_folder = 1 были сверху
структура таблица по чему выбираю записи parent_id , также is_folder 1 = папка 0 = файл
моя выборка:
$fileNodes = FileNode::where('parent_id', '0')->with('children.children.children.children.children')
->orderBy('is_folder', 'desc')
->get();
если поле is_folder = 0 то у него поле mime_type будет не null если это что-то даст...
Вопрос в какой таблице устанавливать foreign key
Есть таблица "Objects" с полями object_no, object_name, description, и у него связь один к одному с таблицей users, contacts,
на диаграме у модели objects есть contact_id, user_id, я установил foreign в Objects на эти таблице
и при выборке Objects::with('contact') получаю ошибку с тем что ищется objects_id в таблице contacts