Mijn vraag
Op mijn werk zijn wij een Portal aan het bouwen. Deze moet voor verschillende gebruikers een template genereren met vragen en dit valideren en generiek opslaan. Dit werkt!
Nu willen wij tussen de vragen HTML elementen laden zoals <hr> of labels met tekst. Hier loop ik vast.
Ik heb in table (zie foto) questions_templates_XREF een question_ID OF een template_element_ID.
als question_ID leeg is maar template_element_ID niet dan moet de SQL/Laravel die relatie returnen. Dat lukt dus niet want ik zie alleen wat ik altijd zie maar een leeg template_element veld...

Relevante software en hardware die ik gebruik
MS SQL, Laravel 5,7
Wat ik al gevonden of geprobeerd heb
Ik heb meerdere manieren geprobeerd.
Zoals:
https://laravel.com/docs/...#constraining-eager-loads
Zou super zijn als iemand het weet!! ik zit hier al 2 weken op te kopstoten
Bij voorbaat dank
ERROR
Models
Question_Template
Template_Element
Op mijn werk zijn wij een Portal aan het bouwen. Deze moet voor verschillende gebruikers een template genereren met vragen en dit valideren en generiek opslaan. Dit werkt!
Ik heb in table (zie foto) questions_templates_XREF een question_ID OF een template_element_ID.
als question_ID leeg is maar template_element_ID niet dan moet de SQL/Laravel die relatie returnen. Dat lukt dus niet want ik zie alleen wat ik altijd zie maar een leeg template_element veld...

Relevante software en hardware die ik gebruik
MS SQL, Laravel 5,7
Wat ik al gevonden of geprobeerd heb
Ik heb meerdere manieren geprobeerd.
Zoals:
https://laravel.com/docs/...#constraining-eager-loads
Zou super zijn als iemand het weet!! ik zit hier al 2 weken op te kopstoten

Bij voorbaat dank
PHP:
1
2
3
| // Dit heb ik nu en werkt zonder de elementen $view->template = Question_Template::with('questionsPivot', 'validations') ->findOrFail($id); |
PHP:
1
2
3
| // Dit is met HAS() voor de left join want die heb ik dus nodig... $view->template = Question_Template::with('questionsPivot', 'validations')->has('template_elements', 'questions_templates_XREF.elements_ID') ->findOrFail($id); |
ERROR
SQL:
1
2
3
4
5
6
7
8
9
| SQLSTATE[22018]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting the nvarchar value 'questions_templates_XREF.elements_ID' to data type int. (SQL: select top 1 * from [questions_templates] where (select count(*) from [template_elements] inner join [questions_templates_XREF] on [template_elements].[ID] = [questions_templates_XREF].[ID] where [questions_templates].[ID] = [questions_templates_XREF].[template_element_ID]) = questions_templates_XREF.elements_ID and [questions_templates].[ID] = 9) |
Models
Question_Template
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| class Question_Template extends Model { protected $fillable = ['name',]; public $timestamps = false; protected $table = 'questions_templates'; protected $primaryKey = 'ID'; const UPDATED_AT = 'modified_at'; public function client_class() { return $this->belongsTo(Client_Class::class); } public function questionsPivot() { return $this->belongsToMany(Question::class, 'questions_templates_XREF', 'question_template_ID', 'question_ID', '', '', '')->withPivot('step', 'ordering')->orderBy('step')->orderBy('ordering'); } public function validations() { return $this->belongsToMany(Validation::class, 'questions_validations_XREF', 'template_ID', 'validation_ID')->withPivot('parameter', 'question_ID'); } public function template_elements() { return $this->belongsToMany(Template_Element::class, 'questions_templates_XREF', 'template_element_ID', 'ID'); } } |
Template_Element
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Template_Element extends Model { protected $fillable = ['title', 'text', 'html']; protected $table = 'template_elements'; protected $primaryKey = 'ID'; const UPDATED_AT = 'modified_at'; public function element() { return $this->belongsTo(Element::class); } } |