Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день, есть форма, в которой по кнопке создаются дополнительные поля, этих полей можно создать неограниченное количество и каждое поле необходимо проверить на длину текста.
В контроллер данные передаются через Request файл, в данный момент это безобразие в request файле выглядит так:
public function rules()
{
return [
'question-img-1' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-1' => 'max:60',
'question-desc-1' => 'max:300',
'question-img-2' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-2' => 'max:60',
'question-desc-2' => 'max:300',
'question-img-3' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-3' => 'max:60',
'question-desc-3' => 'max:300',
'question-img-4' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-4' => 'max:60',
'question-desc-4' => 'max:300',
'question-img-5' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-5' => 'max:60',
'question-desc-5' => 'max:300',
'question-img-6' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-6' => 'max:60',
'question-desc-6' => 'max:300',
'question-img-7' => 'image|mimes:jpeg,png,jpg,gif|size:2000',
'question-title-7' => 'max:60',
'question-desc-7' => 'max:300',
];
}
public function attributes()
{
return[
'question-img-1' => 'question image',
'question-title-1' => 'question title',
'question-desc-1' => 'question desc',
'question-img-2' => 'question image',
'question-title-2' => 'question title',
'question-desc-2' => 'question desc',
'question-img-3' => 'question image',
'question-title-3' => 'question title',
'question-desc-3' => 'question desc',
'question-img-4' => 'question image',
'question-title-4' => 'question title',
'question-desc-4' => 'question desc',
'question-img-5' => 'question image',
'question-title-5' => 'question title',
'question-desc-5' => 'question desc',
'question-img-6' => 'question image',
'question-title-6' => 'question title',
'question-desc-6' => 'question desc',
'question-img-7' => 'question image',
'question-title-7' => 'question title',
'question-desc-7' => 'question desc',
];
}
Как-то можно сделать эту проверку без прописывания имени каждого поля, что-то типа 'question-desc*' => 'max:300'. Понимаю что можно в контроллере циклом через validator сделать это, а в request как?
Все, спасибо, разобрался. В моделях прописал:
protected $primaryKey = 'srv_id';
Здравствуйте, помогите, пожалуйста, есть две таблицы: Questions, Answers. Суть такая, при создании вопроса, создаются сразу варианты ответов в обеих таблицах есть одинаковое поле srv_id, оно автоматически генерируется и пишется в вопросе и в вариантах ответов у нему. При попытке вывести всех вопросов с вариантами ответов на экран, выводятся только вопросы, ошибок не выдается, но и данные из answers не выводятся.
Модель Questtion:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
protected $table = 'questions';
public function answers(){
return $this->hasMany(Answer::class, 'srv_id');
}
}
Модель Answers:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Answer extends Model
{
protected $table = 'answers';
public function question(){
return $this->belongTo(Question::class, 'srv_id');
}
}
Контроллер:
class GetQuestionController extends Controller
{
public function all_Data(){
$questions = Question::with(['answers' => function($q) {
$q->orderBy('title','description');
}])->paginate();
return view('questions', ['questions' => $questions]);
}
}
Код вывода:
@foreach ($questions $question)
<div class="panel panel-default">
<div class="panel-heading">
{{ $question->title }}
</div>
<div class="panel-body">
@foreach ($question->answers $answer)
{{ $answer->title }}
<br>
{{ $answer->description }}
@endforeach
</div>
</div>
@endforeach
Вполне возможно, что я все в корне не правильно делаю, помогите разобраться, пожалуйста.