Nano Hash - криптовалюты, майнинг, программирование

Как получить первичный ключ значения формы из базы данных в Laravel

Ларавел 5.3

У меня есть 3 таблицы [Форма] - [Code_F] и [Code_R], и у меня есть форма в интерфейсе, которая запрашивает у пользователя «имя», «электронная почта», «мобильный», «возраст», «code_f». ', 'code_r', мне нужно иметь возможность добавить первичный ключ как 'code_f', так и 'code_r' в таблицу формы вместо кодов, отправленных пользователем.

Я не хочу, чтобы пользователь мог выбирать коды в поле выбора, но вместо этого я хочу, чтобы они записывали коды, которые у них есть, а затем я хочу сохранить их в таблице FORM под code_f и code_r с их соответствующими первичными ключами вместо полная стоимость.

Модель

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Form extends Model {

    protected $table = 'form';
    public $timestamps = true;
    protected $fillable = array('name', 'email', 'mobile', 'age', 'code_f', 'code_r');

    public function Code_F()
    {
        return $this->belongsTo('App\Code_F');
    }

    public function Code_R()
    {
        return $this->belongsTo('App\Code_R');
    }
}

Контроллер

    $form = new Form;
    $form->name = $request->name;
    $form->email = $request->email;
    $form->mobile = $request->mobile;
    $form->code_f = $request->code_f;
    $form->code_r = $request->code_r;
    $form->save();

Форма таблицы

идентификатор, имя, электронная почта, мобильный, возраст, code_f, code_r

Код таблицы_F

идентификатор, код

Код таблицы_R

идентификатор, код

ОБНОВЛЕНИЕ: Коды уже сохранены в таблице Code_F и Code_R, и все они числовые.

28.01.2017

Ответы:


1

Если вы передаете id из Code_f и Code_r в своем запросе. Затем вы сможете получить его из базы данных таким образом, имея в виду, что вы уже знаете имя ключа (в данном случае это id)

$code_f = Code_F::find($request->code_f);
$code_r = Code_F::find($request->code_r);

вы можете получить доступ к модели в вашем коде сохранения. как $code_f->id | $code_r->id

Обновлено

Я снова прочитал ваш вопрос, в котором говорилось, что вы передаете codes в запросе и хотите получить соответствующий id. Итак, вот дрель

$code_f = Code_F::where('code', $request->code_f)->first(); // will get you the 1st record if there are more than one
$code_r = Code_R::where('code', $request->code_r)->first();
28.01.2017
  • Это работает как шарм, я последовал этому и добавил $form->code_f = $code_f->id;, чтобы получить идентификатор и смог правильно его сохранить. 29.01.2017

  • 2

    Во-первых, обновите свои методы Code_F и Code_R из класса Form до следующих:

    public function Code_F()
    {
       return $this->belongsTo('App\Code_F', 'code_f');
    }
    
    public function Code_R()
    {
       return $this->belongsTo('App\Code_R', 'code_r');
    }
    

    Во-вторых, в вашем контроллере вы должны создать экземпляр Code для каждого кода:

    $form = new Form;
    $form->name = $request->name;
    $form->email = $request->email;
    $form->mobile = $request->mobile;
    $form->code_f = Code_F::create(['code' => $request->code_f])->id;
    $form->code_r = Code_R::create(['code' => $request->code_r])->id;
    $form->save();
    

    Когда вы извлекаете Form из своей базы данных, вы можете получить Code_F или Code_R через:

    $form = Form::findOrFail(1);
    $codeFId = $form->Code_F->id;
    $codeRId = $form->Code_R->id;
    
    28.01.2017
  • Я принял другой ответ, так как это сработало в моей ситуации, а ваша фактически создала новый идентификатор в форме «Code_R» и «Code_F» вместо получения соответствующего идентификатора, но вы определенно помогли мне понять это дальше с помощью этого метода извлечения 29.01.2017
  • Нет проблем @NMindz, рад, что помог вам немного лучше понять вашу ситуацию :) 29.01.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..