Comments (9)
Same issue with https://github.com/renoki-co/laravel-eloquent-query-cache
from laravel-mysql-spatial.
You'd have to create your own Illuminate\Database\Eloquent\Builder
implementing both:
Maybe something like the following (adjust the namespaces to your app):
namespace Grimzy\LaravelMysqlSpatial\Eloquent;
use Sofa\Eloquence\Builder as EloquenceBuilder;
class MergedBuilder extends EloquenceBuilder
{
use SpatialBuilderTrait;
}
with SpatialBuilderTrait
implementing the methods from Grimzy\LaravelMysqlSpatial\Eloquent \Builder
:
namespace Grimzy\LaravelMysqlSpatial\Eloquent;
use Grimzy\LaravelMysqlSpatial\Types\GeometryInterface;
trait SpatialBuilderTrait
{
public function update(array $values)
{
foreach ($values as $key => &$value) {
if ($value instanceof GeometryInterface) {
$value = $this->asWKT($value);
}
}
return parent::update($values);
}
protected function asWKT(GeometryInterface $geometry)
{
return $this->getQuery()->raw("ST_GeomFromText('".$geometry->toWKT()."')");
}
}
And override Eloquence::newEloquentBuilder()
in your model
:
use new \Grimzy\LaravelMysqlSpatial\Eloquent\MergedBuilder as Builder;
class SomeModel extends Model;
use SpatialTrait, Eloquence;
public function newEloquentBuilder($query)
{
return Builder($query);
}
}
Can you try this out?
from laravel-mysql-spatial.
Sorry for the late reply, I'm going to try it asap. I already created a custom solution to fulfill the same needs which brought me to use your package. Therefore, if your solution don't work, no matter.
from laravel-mysql-spatial.
@aletundo I've pushed code in builder-as-trait if you want to check it out.
I'm probably merging this with master
and the mysql-5.6
branches in versions 2.0.2
and 1.1.3
sometime soon.
from laravel-mysql-spatial.
@grimzy So, I should just use this branch instead of all the changes listed before?
Jtk, my custom solution consist of a trait
with a bunch of scope and accessor methods. Obviously without using the geometric models and so on. I went through unpack the binary returned from MySQL etc. Therefore, my way was not too bad :)
from laravel-mysql-spatial.
As referenced above, I also have this problem in combination with GeneaLabs/laravel-model-caching package.
from laravel-mysql-spatial.
Same error with the NodeTrait
https://github.com/lazychaser/laravel-nestedset
from laravel-mysql-spatial.
same issue with https://github.com/jenssegers/laravel-mongodb
from laravel-mysql-spatial.
use SomeBaseTrait, SpatialTrait {
SomeBaseTrait::newBaseQueryBuilder insteadof SpatialTrait;
}
from laravel-mysql-spatial.
Related Issues (20)
- This makes funny things to the DB, and then break stuff…
- Syntax error with Laravel 8, MariaDB 10.6 and SRID HOT 2
- Migration from 4.X to 5.0.0 breaks SRID HOT 2
- Error in save or retrieve HOT 1
- Not able to update geometry field with MultiPoint HOT 1
- Does it work with PHP8.1 ? HOT 4
- Laravel 9 Support HOT 19
- MariaDB doesnt support creating a geometrycolumn with an SRID
- Polygon GeoJson String Validation
- laravel 9 HOT 2
- Invalid parameter value: 3037 Invalid GIS data provided to function st_geometryfromtext
- Cast request spatial data to Eloquent model via fill method is not possible
- Cast request spatial data to Eloquent model via fill method is not possible HOT 1
- Should support sqlite / spatiallite
- {"message":"Call to a member function getLat() on string"}
- Slow Cache retrieval
- Laravel 10 HOT 3
- Laravel 9 Issue HOT 3
- Any Update for Laravel 10 HOT 2
- Type error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-mysql-spatial.