web-dev-qa-db-fra.com

Comment mettre à jour la valeur de la colonne dans laravel

J'ai un modèle de page. Il a les colonnes suivantes dans la table de base de données:

  • identifiant
  • titre
  • image
  • corps

Je souhaite mettre à jour uniquement la valeur de la colonne "image".

Voici mon code:

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

cela me jette une erreur, que j'essaye d'utiliser where () sur un non-objet. Comment puis-je mettre à jour correctement la valeur de la colonne "image"?

19
Alexander Kim

Vous pouvez essayer ceci:

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

Il existe également d'autres méthodes, mais il n'est pas nécessaire d'utiliser Page::find($id); dans ce cas. Mais si vous utilisez find(), essayez-le comme ceci:

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

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

Aussi, vous pouvez utiliser:

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

Donc, une exception sera lancée si le modèle avec cet identifiant n'a pas été trouvé.

25
The Alpha

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();

En cas de question répondue vous pouvez les utiliser:

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