Я пытаюсь заполнить свою таблицу данными, если сегодня между датой публикации и датой закрытия.
public function mount(Career $career)
{
$this->today = Carbon::now();
$this->posting = Carbon::parse($career->posting_date);
$this->closing = Carbon::parse($career->closing_date);
$this->career = Career::where($this->posting, '<=', $this->today) ->where($this->closing, '<=', $this->today)->get();
$this->sortBy = 'id';
$this->sortDirection = 'asc';
$this->perPage = 100;
$this->paginationOptions = config('project.pagination.options');
$this->orderable = (new Career())->orderable;
}
я получаю эту ошибку
SQLSTATE[42S22]: Column not found: 1054 Unknown column '2022-05-06 01:10:12' in 'where clause'
также, если я попытаюсь отобразить $today
, $posting
и $closing
на своем лезвии, все они будут показывать сегодняшнюю дату.
Здравствуйте, спасибо за ваш ответ. Можете ли вы дать мне подсказку о том, как это сделать? благодарю вас
Я не знаю larvel или как вы готовите и передаете тычинки sql, но эта ошибка sql очень наглядна. Может быть, если бы вы сказали, какая именно строка вызывает ошибку, я мог бы перейти оттуда
Я исправил ошибку, используя эту строку $this->career = Career::where('posting_date', '<=', $this->today) ->where('closing_date', '>=', $this->today)->get();
, но теперь у меня есть другая ошибка, говорящая Cannot assign Illuminate\Database\Eloquent\Collection to property App\Http\Livewire\Career\Vacant::$career of type App\Models\Career
покажи нам свободный компонент livewire
решил это. размещен ниже
Я решил это, отредактировав свой рендер и поставив >whereDate.
public function render()
{
$query = Career::advancedFilter([
's' => $this->search ?: null,
'order_column' => $this->sortBy,
'order_direction' => $this->sortDirection,])
->whereDate('posting_date', '<=', Carbon::now())
->whereDate('closing_date', '>=', Carbon::now());
$careers = $query->paginate($this->perPage);
return view('livewire.career.vacant', compact('careers', 'query'));
}
Вы должны ввести имя столбца в своем запросе, и вы не можете ввести дату в поле имени столбца.
$this->career = Career::where('column_name', '<=', $this->today) ->where('column_name', '<=', $this->today)->get();
Вы передаете данные как имя столбца, вам нужно указать имя столбца. Я не знаю, что это такое, но прочитайте документацию для предложения where в вашем sql и узнайте, какие позиционные параметры идут куда