database - rutas - php artisan make controller
una forma de sumisiĆ³n a 2 controladores en laravel (1)
Puede que esta no sea la mejor respuesta, pero puede usar una sola forma para pasarla al controlador y luego pasar los datos a los múltiples repositorios.
route.php
Route::resource(''student'', ''StudentController'');
StudentController.php
public function __constructor(StudentRepository $student, HobbyRepository $hobby)
{
$this->student = $student;
$this->hobby= $hobby;
}
public function store(Request $request)
{
$data = $request->all();
$hobby = [
''hobby'' => $data[''hobby''],
''schedule'' => $data[''schedule''],
''intensity'' => $data[''intensity''],
''diet'' => $data[''diet''],
];
$student = [
''student_name'' => $data[''student_name''],
''age'' => $data[''age''],
''height'' => $data[''height''],
''weight'' => $data[''weight''],
''bmi'' => $data[''bmi''],
];
$this->student->store($student);
$this->hobby->store($hobby);
//your other codes.
}
StudentRepository.php
public function store($data)
{
// your implementation on storing the user.
}
HobbyRepository.php
public function store($data)
{
// your implementation on storing the hobby.
}
Puede usar cualquier método y variables para pasar los datos del controlador. Espero que esto ayude.
Editar:
Para su pregunta extendida sobre el almacenamiento y recuperación de información.
Como se indica en los documentos:
The create method returns the saved model instance:
$flight = App/Flight::create([''name'' => ''Flight 10'']);
Para obtener más información, consulte los documentos:
Si desea pasar la student id
del student id
al hobby
el método más simple es devolver al estudiante de StudentRepository
y pasarlo al HobbyRepository
.
P.ej:
StudentRepository.php
public function store($data)
{
// your implementation on storing the user.
$student = [] // array of the student informations to be stored.
return Student::create($student); //you will have student information here.
}
StudentController.php
$student = $this->student->store($student); //store the student information and get the student instance.
$this->hobby->store($hobby, $student->id); //pass it to the hobby to store id.
Debes cambiar el almacén de hobbyRepository
para usar la student id
.
Esto podría solucionar su problema extendido.
entonces tengo 2 tablas en mi db: ejemplos de estudiantes y pasatiempos. así que eso significa 2 controladores así como StudentController y HobbyController. y también 2 modelos.
Tengo un formulario donde se necesita, por ejemplo:
1. nombre del estudiante
2.age
3. Altura
4. peso
5.bmi
6.hobby
7. programar
8. intensidad
- 9.diet
los primeros cinco tienen que ir al controlador estudiantil y el 6-9 va al controlador de hobby ... ¿cómo puedo hacer esto? No quiero 2 formas diferentes ...