Ответы пользователя по тегу Laravel
  • Почему не работает связь Eloquent?

    @ettychel Автор вопроса
    Помогло указание первичного ключа в модели
    protected $primaryKey = 'PODE_PM';
    Хз чё ему не нравилось
    Ответ написан
    Комментировать
  • Не могу найти ошибку при отправке формы?

    @ettychel
    Внимательно посмотрите в ошибку
    Base table or view not found: 1146 Table 'visualstudy.post_every_day_post_every_day_tag'

    И на название своей таблицы
    Schema::create('post_everyday_conect_to_tags',

    'App\PostEveryDayTag'

    Равно названию таблицы post_every_day_tags
    'App\PostEveryDay'

    Равно названию таблицы post_every_days
    Ответ написан
    2 комментария
  • Laravel + vue pusher система диалогов?

    @ettychel
    Вы должны покинуть канал, как это описано в документации . Вы можете реализовать это как отдельный метод и потом использовать в хуке Vuejs beforeDestroy или по какому-либо другому событию
    Ответ написан
    Комментировать
  • Как получение событие после выполнения группы параллельных заданий в Laravel Jobs?

    @ettychel
    Банально и просто не выдумывая ничего!
    Задача - получение 10 ответов
    Подзадача - обработка 1 ответа

    Отправляем запрос на товарные предложения - создали 10 строк в бд:

    | id | task_id | provider_id | response |

    Отправляем запросы с уникальными id, их же ждём в ответ + сам ответ
    При получении ответа пишем его в бд, в поле response.
    Проверяем поле response на NULL, если есть то ничего не делаем, если нету, то надо отправлять пользователю.
    Ответ написан
    3 комментария
  • Почему не работает delete в laravel?

    @ettychel
    Можно иначе
    public function destroy(Request $r) {
        return Filemanager::destroy($r->id);
    }

    Но в целом будет работать и то и то.
    По поводу POST как сказали выше CSRF токен очень даже мог быть причиной. Посмотрите, что возвращает сервер и логи, там явно будет описано CSRF виноват или нет.

    В дополнение по поводу метода запроса. Для удаления используйте запрос DELETE, ваши роуты будут явно отражать что они делают, потом будет удобно смотреть
    php artisan route:list
    Ответ написан
  • Как сделать insert ... on duplicate key update в Lighthouse-php на Laravel?

    @ettychel Автор вопроса
    Решил свой вопрос созданием класса мутатора, все шаги описаны ниже

    Добавляем пакет кастомных типов данных

    composer require mll-lab/graphql-php-scalars

    Создаем класс мутатор

    php artisan lighthouse:mutation ClassNameMutator

    По пути /yourPath/appName/app/GraphQL/Mutations будет создан файл ClassNameMutator.php
    Пишем в самом конце свой метод createOrUpdate

    use App\Models\ModelName;
    
    ...
    
    public function createOrUpdate($rootValue, array $args, GraphQLContext $context)
    {
        $model = ModelName::find($args['id']);
        if ($model == null) {$model = new ModelName();}
        $model->fill($args)->save();
        $model = ModelName::select($args['field'])->find($args['id']);
    
        return $model;
    }


    В файле /yourPath/appName/graphql/schema.graphql прописываем следующее:

    "A Json string with format normal Array"
    scalar Mixed @scalar(class: "MLL\\GraphQLScalars\\Mixed")
    
     ...
        
    type Mutation {
        uoiModel(input: uoi! @spread): Mixed @field(resolver: "ClassNameMutator@createOrUpdate")
    }
    input uoi{
        id: ID!         //Поле таблицы в запрос
        otherField: ID  //Поле таблицы в запрос
        field: Mixed    //Поля, которые нужны в ответ, указываются в виде простого массива ["field1","field2","fieldn"]
    }


    Теперь у нас есть мутация, которой можно легко пользоваться, запрос будет таким:

    mutation {
        uoiModel(
            input: {
                id: 900003
                status: 49
                field: [
                    "id",
                    "status"
                ]
            }
        )
    }


    Данное решение подходит для таблиц как с инкрементным id, так и без
    Ответ написан
    2 комментария
  • Сортировка отношения в laravel через load() не работает, что не так?

    @ettychel Автор вопроса
    Решил задачу, конечно я считаю, что это не лучшее решение и поэтому жду каких либо предложений, но данный способ работает:

    $columns = ['arm_jobs.id',
                        'worker',
                        'task',
                        'status',
                        'date_offer',
                        'start_time',
                        'deadline',
                        'timework'
            ];
    
    $this->startCondition()
                        ->select($columns)
                        ->with(['statusName:status_id,status_name',
                                'workerName:id,fio', 
                                'armReq:id,title,user_id,priority,range_priority',
                                'getNameReqPeople'])
                        ->whereHas('armReq', function($q) {
                            $q->where('column', 'like', '%Значение%');
                        })
                       ->join('arm_req_posts as req', 'req.id', '=', 'arm_jobs.id')
                                                ->orderBy('req.range_priority','desc')
                        ->orderBy('arm_jobs.id','desc')
                        ->paginate(12);
    Ответ написан
  • Как сделать return массива в котором один из элементов результат view()?

    @ettychel Автор вопроса
    Ответ на мой вопрос найден)

    $view = [
              'li' => view('li_for_table',['items' => $items[$table], 'table' => $table])->render(),
              'table' => view('worktable.w_dop_table', ['items' => $items[$table], 'table' => $table])->render()
        ];
    return $view;
    Ответ написан
    Комментировать
  • Как объединить таблицы?

    @ettychel
    Можно сделать с помощью Eloquent
    В модели orders прописать 2 belongsTo
    Потом написать запрос
    Orders::find($id)->with(['users:id,login,email', 'lots:id,title']) //users и lots названия методов в модели

    И вот я смотрю и не понимаю, почему у тебя orders.lot_id связан с cart.id? Может связь надо сделать orders.lot_id к lots.id?
    Ответ написан
    Комментировать
  • Почему в __construct перестал определятся аутентифицированный пользователь?

    @ettychel Автор вопроса
    Решил таким способом

    В контроллере от которого наследуется PostController контроллер добавил

    use App\Http\Controllers\Controller;
    use Illuminate\Support\Facades\Auth;
    
    abstract class BaseController extends Controller
    {
        public function authUser()
        {
            return Auth::user();
        }
    }


    потом можно вызывать $this->authUser() со всеми вытекающими
    Ответ написан