日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php unable to save,php – Laravel save()未定义

發(fā)布時(shí)間:2024/9/19 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php unable to save,php – Laravel save()未定义 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我試圖將我現(xiàn)有的插入方法轉(zhuǎn)換為查詢范圍,以便我可以重用它們并采用更干的方法.

這就是我想要轉(zhuǎn)換為L(zhǎng)arvel查詢范圍的內(nèi)容:

$time = new Time;

$time->employee_id = $input['user_id'];

$time->day = Carbon::now()->toDateString();

$time->clock_in = Carbon::now()->toTimeString();

$time->save();

這就是我現(xiàn)在對(duì)查詢范圍的看法:

public function scopeClockIn($query, $userID) {

$query->employee_id = $userID;

$query->day = Carbon::now()->toDateString();

$query->clock_in = Carbon::now()->toTimeString();

$query->save();

}

這就是我調(diào)用上面的查詢范圍的方法:

$time = Time::clockIn($input['user_id']);

但我得到錯(cuò)誤:

Call to undefined method Illuminate\Database\Query\Builder::save()

我也嘗試過:

$time = new Time::clockIn($input['user_id']);

但是當(dāng)我嘗試使用new關(guān)鍵字時(shí)出現(xiàn)錯(cuò)誤:

語法錯(cuò)誤,意外的’clockIn'(T_STRING),期望變量(T_VARIABLE)或’$’

谷歌一直沒有幫助我發(fā)現(xiàn)其他問題與相同的錯(cuò)誤消息,但他們?cè)噲D檢索結(jié)果而不是插入它們.希望有人在這里可以幫我弄清楚我做錯(cuò)了什么.

解決方法:

好的,寫得很好的問題.

Laravel使用Builder通過例如數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)進(jìn)行交互.構(gòu)造和執(zhí)行SQL查詢.一旦完成,它將返回您的Time對(duì)象 – 或者它們的集合.

當(dāng)你這樣做時(shí)Time :: all()或Time :: where(‘something’,’=’,’something’) – > get(),你沒有使用Time對(duì)象而是使用Builder.

范圍在“從數(shù)據(jù)庫(kù)獲取和返回內(nèi)容”階段應(yīng)用,這就是您從Builder收到錯(cuò)誤的原因.你無法保存任何東西 – 因?yàn)槟闳栽跇?gòu)建一個(gè)查詢,你實(shí)際上并不是一個(gè)Time對(duì)象的實(shí)例.

你的想法很好,把事情變得更小,更清晰通常是一個(gè)好主意.它不應(yīng)該是一個(gè)范圍.你想要做的可能是只提供用戶ID并使其成為靜態(tài)函數(shù).像這樣的東西:

public static function createFromUserId($userID) {

$time = new static();

$time->employee_id = $userID;

$time->day = Carbon::now()->toDateString();

$time->clock_in = Carbon::now()->toTimeString();

$time->save();

return $time;

}

請(qǐng)注意static關(guān)鍵字,這意味著您沒有使用特定對(duì)象,而是使用類上的常規(guī)函數(shù)??.這就是為什么你在后面的問題中得到了語法錯(cuò)誤::: in Time :: clockIn()表示它是一個(gè)靜態(tài)方法,但你還沒有使方法成為靜態(tài).

我還確保該方法返回創(chuàng)建的時(shí)間,以防您需要對(duì)其進(jìn)行操作.現(xiàn)在,您可以使用用戶ID創(chuàng)建新的Time對(duì)象,如下所示:

$time = Time::createFromUserId($userID);

我希望能回答你的問題.

標(biāo)簽:php,laravel,laravel-5

來源: https://codeday.me/bug/20190608/1201245.html

總結(jié)

以上是生活随笔為你收集整理的php unable to save,php – Laravel save()未定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。