/**
  * 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);
 }