Прежде всего, я начинающий и пытаюсь выучить все, что могу. Поэтому, если у меня есть ошибки, пожалуйста, исправьте меня.
Итак, я работаю над laravel проектом. У меня есть две модели; наркотики и взаимодействия. Я борюсь за то, чтобы добавить два лекарства и одно взаимодействие в одной форме. Но я также хочу проверить, введен ли уже препарат, чтобы избежать дублирования данных.
Вот мои модели:
class Drug extends Model
{
//Table Name
protected $table = 'drugs';
//Primary Key
public $primaryKey = 'id';
//Timestamps
public $timestamps = true;
//relationship
public function interactions()
{
return $this->belongsToMany('App\Interaction', 'drug_interaction', 'interaction_id', 'drug_id');
}
}
class Interaction extends Model
{
//Table Name
protected $table = 'interactions';
//Primary Key
public $primaryKey = 'id';
//Timestamps
public $timestamps = true;
//Relationship
public function drugs()
{
return $this->belongsToMany('App\Drug', 'drug_interaction', 'drug_id', 'interaction_id');
}
}
И это просто функция хранения в моем DrugsController
public function store(Request $request)
{
$this->validate($request, [
'name'=> 'required',
'info'=> 'nullable'
]);
//create drug
$drug = new Drug;
$drug->name = $request->input('name');
$drug->info = $request->input('info');
$drug->save();
return redirect('/drugs')->with('success', 'İlaç Eklendi');
}
И это функция хранилища моего InterationsController.
public function store(Request $request)
{
$this->validate($request, [
'name'=> 'required',
'description'=> 'required',
'category'=> 'nullable'
]);
//create interaction
$interaction = new Interaction;
$interaction->name = $request->input('name');
$interaction->description = $request->input('description');
$interaction->category = $request->input('category');
$interaction->save();
Я могу прикреплять отношения через ремесленника, поэтому я думаю, что отношения работают. Но я застрял, когда дело доходит до нескольких форм ввода идет на разных контроллерах. Но используя stati c id. Мне нужно сделать это переменными. Но два препарата должны быть привязаны к одному взаимодействию. Так что я не смог успешно вставить две переменные из формы одновременно.
Глупыми словами я пытаюсь достичь:
- запросить drug_name_one из первого текстового поля формы. Проверьте БД на название этого препарата, если существует; получить его идентификатор. Если этого не произойдет, создайте его и получите идентификатор.
- запросите drug_name_two из второго текстового поля формы. Выполните то же, что и в первом шаге.
- создайте взаимодействие, как указано в третьем текстовом поле формы.
- присоедините их.
PS: после этой операции attach () сделано, я также не мог найти способ поиска двух лекарств, если они имеют общее взаимодействие. Если вы можете также упомянуть несколько советов для достижения этого, я буду благодарен.
Спасибо за помощь и советы по дальнейшему чтению. Спасибо всем!
Редактировать:
Это миграция create_interactions.
Schema::create('interactions', function (Blueprint $table) {
$table->BigIncrements('id');
$table->string('name');
$table->string('description');
$table->string('category');
$table->timestamps();
});
}
Это входные данные для поля категории:
<div class="form-group">
{{Form::label('category', 'Kategori')}}
{{Form::text('category', '', ['class' => 'form-control', 'placeholder' => 'Etkileşim Kategorisi'])}}
</div>
Я не мог сделать структуру формы так, как хотел. Это просто форма для создания взаимодействий без отношений.