Alexander Kim
Alexander Kim

Reputation: 18382

How to update column value in laravel

I have a page model. It has following columns in database table:

I want to update only "image" column value.

Here's my code:

public function delImage($path, $id) {
    $page = Page::find($id);
    $page->where('image', $path)->update(array('image' => 'asdasd'));
    \File::delete($path);
}

it throws me an error, that i am trying to use where() on a non-object. How can i correctly update my "image" column value?

Upvotes: 66

Views: 263115

Answers (5)

Emmanuel Iyen
Emmanuel Iyen

Reputation: 439

       DB::table('agents')
       ->where('id', $agentid)
       ->update(['status' => '0']);

Upvotes: -1

Rachid Loukili
Rachid Loukili

Reputation: 845

Try this method short and clean :

Page::where('id', $id)
  ->update(['image' => $path]);

An example from Laravel doc

Flight::where('active', 1)
      ->where('destination', 'San Diego')
      ->update(['delayed' => 1]);

Upvotes: 4

S. Guy
S. Guy

Reputation: 261

I tried to update a field with

$table->update(['field' => 'val']);

But it wasn't working, i had to modify my table Model to authorize this field to be edited : add 'field' in the array "protected $fillable"

Hope it will help someone :)

Upvotes: 26

Cubiczx
Cubiczx

Reputation: 1115

Version 1:

// Update data of question values with $data from formulay
$Q1 = Question::find($id);
$Q1->fill($data);
$Q1->push();

Version 2:

$Q1 = Question::find($id);
$Q1->field = 'YOUR TEXT OR VALUE';
$Q1->save();

In case of answered question you can use them:

$page = Page::find($id);
$page2update = $page->where('image', $path);
$page2update->image = 'IMGVALUE';
$page2update->save();

Upvotes: 8

The Alpha
The Alpha

Reputation: 146191

You may try this:

Page::where('id', $id)->update(array('image' => 'asdasd'));

There are other ways too but no need to use Page::find($id); in this case. But if you use find() then you may try it like this:

$page = Page::find($id);

// Make sure you've got the Page model
if($page) {
    $page->image = 'imagepath';
    $page->save();
}

Also you may use:

$page = Page::findOrFail($id);

So, it'll throw an exception if the model with that id was not found.

Upvotes: 118

Related Questions