O Copilot é uma excelente ferramenta, o problema é que ele faz exatamente o que você pede, e agora tenho uma classe bd que ficou enorme, e mesmo assim surge um problema novo que os métodos da classe bd não são capazes de resolver.
Esse é o caso do método first, eu precisava do último registro de uma tabela, e o copilot sugeriu alterar o código para
self::$orderBy = "ORDER BY ped DESC";
Isso resolve o meu problema no curto prazo, mas lá frente, eu sei que vou precisar ordenar de forma diferente, assim decidi mudar o método por conta própria e eu criei o argumento $opção, e o código ficou assim:
Agora, posso escrever tbpedido::first('*',[],'ORDER BY ped DESC"). É claro que isso está bem longe de parecer com o Eloquent do Laravel, é por isso que dei o nome de semiLaravel ao projeto.
Pergunta
Frank K Hosaka
O Copilot é uma excelente ferramenta, o problema é que ele faz exatamente o que você pede, e agora tenho uma classe bd que ficou enorme, e mesmo assim surge um problema novo que os métodos da classe bd não são capazes de resolver.
Esse é o caso do método first, eu precisava do último registro de uma tabela, e o copilot sugeriu alterar o código para
self::$orderBy = "ORDER BY ped DESC";
Isso resolve o meu problema no curto prazo, mas lá frente, eu sei que vou precisar ordenar de forma diferente, assim decidi mudar o método por conta própria e eu criei o argumento $opção, e o código ficou assim:
static function first($columns = '*', $conditions = [],$opcao = null) { self::initialize(); $table = static::getTableName(); if (is_array($columns)) { $columns = implode(', ', $columns); } $whereClause = ''; self::$bindings = []; if (!empty($conditions)) { foreach ($conditions as $condition) { $field = $condition[0]; $operator = $condition[1]; $value = $condition[2]; if ($operator == 'BETWEEN' && is_array($value)) { $whereClause .= "$field BETWEEN :{$field}_start AND :{$field}_end AND "; self::$bindings["{$field}_start"] = $value[0]; self::$bindings["{$field}_end"] = $value[1]; } else { $whereClause .= "$field $operator :$field AND "; self::$bindings[$field] = $value; } } $whereClause = 'WHERE ' . rtrim($whereClause, ' AND '); } $sql = "SELECT $columns FROM $table $whereClause"; if($opcao) { $sql .= ' '.$opcao; } $sql .= ' LIMIT 1'; $stmt = self::getPdo()->prepare($sql); foreach (self::$bindings as $key => $value) { $stmt->bindValue(":$key", $value); } $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_OBJ); self::$result = $result ? [$result] : []; return $result; }
Agora, posso escrever tbpedido::first('*',[],'ORDER BY ped DESC"). É claro que isso está bem longe de parecer com o Eloquent do Laravel, é por isso que dei o nome de semiLaravel ao projeto.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.