我在Laravel的模型中使用范围查询来分配自定义查询功能。这个特殊功能一直在给我提出问题,告诉我必须将参数作为数组提供,而不是String。
/**
* Get all labs of a class
* TODO: Fix error
* @param $query
* @param $subjectCode Course subject code i.e. "PHYS"
* @param $courseNo Course # i.e. "101" or "%" for everything
* @return mixed A list of lectures of the class
*/
public function scopeLabsByClass($query, $subjectCode, $courseNo) {
return $query
->where('subject_code', 'like', $subjectCode)
->where('course_no', 'like', $courseNo)
->whereIn('instr_type', 'like', LAB)
;
}
当我使用Tinker运行它时:
>>> App\SchoolClass::LabsByClass('ece', '201')->get();
我收到以下错误。
PHP错误:参数1传递给 Illuminate \ Database \ Grammar :: parameterize()必须是类型数组, 给出的字符串,调用 /home/vagrant/Code/laravel/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php 在311行并在中定义 /home/vagrant/Code/laravel/vendor/laravel/framework/src/Illuminate/Database/Grammar.php 在第113行
我的代码类似于Laracasts中的教程,其中范围方法的第一个输入是$query
答案 0 :(得分:1)
尝试将Labs中的L设置为小写。
App\SchoolClass::labsByClass('ece', '201')->get();
答案 1 :(得分:1)
我正在使用<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="All.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
功能,但在我回到原来的解决方案时忘了删除它。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Main.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type TextBox}" x:Key="Sub" BasedOn="{StaticResource Main}">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="20"/>
</Style>
</ResourceDictionary>