Да;
Модели очень динамичны c в том, как они принимают ввод.
Один из способов - который я обычно предпочитаю вводить, - вызывать create()
.
Для instace:
Question::create([
"question_id" => $question->id,
"answer" => $answer['body'],
"is_correct" => array_key_exists('check', $answer) ?
$answer['check'] === 'on' :
false,
]);
Это игнорирует вашу необходимость инициировать Question::class
и позволяет просто вызывать insert.
Еще один мощный инструмент, включенный в Laravel модели Facades
. Если вы хотите вызвать пользовательский метод, такой как Question::insertNew()
, в вашу модель; Вы можете использовать Facade
, который автоматически инициирует класс и правильно вызывает функцию - с учетом контекста:
, например,
Вопрос. php
class Question extends Model
{
public function insertNew( $date ) {
// do whatever with $data
}
}
QuestionsController. php
use Facades\App\Question;
class QuestionsController extends Controller {
// all functions
public function store(Request $request) {
$question = Question::insertNew([/*question array*/]);
return response([]);
}
// remaining functions
}
Вы действительно должны проверить документы Laravel на модели . Он объясняет, как работает их ядро, и дает вам стратегии по улучшению их встроенных функций в рамках ваших собственных пользовательских методов.