/** * Get Options builder for collection. * * @param Result $result Database result. * @param string $valueColumn Value column. * @param string|\callable $labelColumn Label column or callback. * * @return OptionsBuilder */ public static function fromResult(Result $result = null, $valueColumn = 'id', $labelColumn = null) { if ($result->numRows < 1) { return new static(new ArrayOptions()); } $options = new ArrayListOptions($result->fetchAllAssoc()); $options->setValueKey($valueColumn); if (is_callable($labelColumn)) { $options->setLabelCallback($labelColumn); } elseif ($labelColumn) { $options->setLabelKey($labelColumn); } else { $options->setLabelKey($valueColumn); } return new static($options); }
/** * Get Options builder for collection. * * @param Result $result Database result. * @param string|\callable $labelColumn Label column or callback. * @param string $valueColumn Value column. * * @return OptionsBuilder */ public static function fromResult(Result $result = null, $labelColumn = null, $valueColumn = 'id') { return static::fromArrayList($result->fetchAllAssoc(), $valueColumn, $labelColumn); }