Comments (11)
Did you set fillable or guarded properties on your model?
from ardent.
Yes...
/**
* The attributes that may not be mass assignable.
*
* @var array
*/
protected $guarded = array('id', 'created_at', 'updated_at');
from ardent.
@JonathanHindi - In "auto-hydration" mode, Ardent extracts only those fields from Input::all()
which have explicitly been defined in the validation $rules
array. A user-filled form data could have many artefacts (such as CSRF tokens) which you may not want to store in the database.
In principle, new Category(Input::all())
may cause errors... Input::all()
could contain attributes that may not be present in your database table. Adding the field to your validation rules would be a better solution:
public static $rules = array(
'title' => 'required',
'description' => '',
);
from ardent.
@laravelbook, I thought that new Category(Input::all())
will discard the extra fields, and I didn't know that I can add an empty value property to the $rules
array. Anyway thank you. I will add it to the $rules
array.
Do you know how should I handle the update method in a restful pattern with ardent
to make sure that it will validate before updating. Right now I do something like this, I am not sure that it's the best way to do it.
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
$category = Category::find($id);
$category->fill(Input::all());
if( $category->save() ){
return Api::response(200, 'Category Updated Sucessfully', $category);
}
// Get validation errors (see Ardent package)
$error = $category->errors()->all();
return Api::response(400, $error);
}
from ardent.
Another question, Is as I currently understand, I can't use autoHydratedEntityFormInput with json
requests. It's mentioned in the docs and I see in the code that It's using Input::all()
so how should I go with validating Input::json()
using Ardent
.
from ardent.
@JonathanHindi - you are correct. Eloquent
has the $fillable
property - you may populate this array to purge un-needed attributes automatically.
Alternatively, you could use the Input::only()
method:
$filtered_input = Input::only('username', 'password');
$category->fill($filtered_input);
from ardent.
@JonathanHindi - Ardent (and Eloquent) works only with PHP associative arrays. You may use json_decode()
to convert the JSON data into PHP array. IIRC, the Laravel Input
class already does that; Laravel populates the Input
class from client-side JSON object (produced by some javascript library) - you can fetch the related property via Input::get()
from ardent.
Ok Thank you...
from ardent.
On a side note @JonathanHindi which package are you using to create your API responses?
from ardent.
@jdesulme It was a custom package, All it do is formatting the json in a custom way for my API nothing more.
from ardent.
I'm having this same problem, similar setup as OP with everything set correctly.
'Description' is not required so is in the rules array with an empty value, but it will not save unless I put a validation rule in such as 'required'
from ardent.
Related Issues (20)
- undefined method Illuminate\Support\MessageBag::put() HOT 1
- Ardent upgrades causing SegFault HOT 5
- Trying to save a polymorphic relationship yields ErrorException
- L5.2: Specifying ardent as driver for user provider for in auth.php causes "Authentication user provider [ardent] is not defined" error HOT 3
- Only validate changed fields
- initialization of the static variable Ardent::$rules HOT 1
- Can't associate morphed relations.
- Conflict between Entrust::save() and Ardent::save() HOT 4
- ReflectionException in Container.php line 741
- Laravel 5.3 Support HOT 2
- Laravel 5.0 support HOT 1
- How to access $this->id in afterCreate() hook?
- translator comes error when doing configureAsExternal use ardent standalone HOT 1
- Is there a way to perform validation on delete?
- Conflict between Eloquent save() and Ardent::save()
- Laravel 5.5. logout error HOT 1
- Is the current source compatible with Laravel 5+ ? HOT 6
- Method declaration incompatibility - morphTo, Laravel 5.6.18 HOT 2
- Laravel 5.7 Issue HOT 6
- Laravel 6.0+ support
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 ardent.