1.應用場景/目的
基於 Laravel + Vue 構建練習項目. |
2.學習/操作
步驟暫參見: https://xueyuanjun.com/post/9488 github: https://github.com/ningxiaofa/laratwitter
後續整理, 發出文檔. TBD
過程截圖記錄: .env //很平常的配置
npm run watch 啓動熱編譯
保存數據,更新UI
使用用戶名字顯示個人主頁
關注功能[顯示鏈接]
'開始關注'實現
'取消關注'實現
獲取用戶自身與所關注用戶的所有的tweet
至此,一個基於 Laravel + Vue 實現的小型 Twitter 網站已經開發完成,你可以對其進行添磚加瓦,將其變成一個真正可用的在線產品.
Tips: 如果按照此教程在實踐過程中,發現前端組件調整後不生效,可以嘗試在每次更改後運行
後續補充 ... |
3.問題/補充
1. npm run watch 熱編譯未生效
原因: TBD 肯能是鼠標在cmd中點擊,到時進程別中止, 應該重新啓動, 在cmd點擊,回車, 或者ctrl+終止, npm run watch 重新啓動[然後不要再管它]. 處理辦法: 見上面.
後發現, 熱編譯有生效, 從文件修改日期可知 但是頁面上並不能自動更新, 需要手動刷新, 應該如何解決 //應該是瀏覽器緩存的問題, 如何解決緩存的問題. TBD
2. 使用axios發送post請求, 後端控制器中接收不到請求? 原因: TBD 解決辦法: 排查原因,步驟如下: 先檢測前端是否能正常發送post請求. 先用斷點輸出方式定位. 後定位後端路由,在執行的路由中斷電調試, 確認是否能接收到請求. 主要查看url是否正確, 以及請求方式. 最後發現原因是: 後端路由web.php中加上/即可 //待確定, 加不加/的區別 TBD Route::post('tweet/save', 'PostController@store');
重新輸入信息, 點擊'發送', 截圖如下:
3. 當定義事件時後, 點擊發送/tweet時, 期望能更新視圖, 但出現報錯 TypeError: Event.$emit is not a function
原因: Event未定義. 先創建event.js 後引入js [import Event from '../event.js';] 文件方式爲生效, 原因TBD
在resources/assets/js/components/FormComponent.vue中引入,方式不work //而且是否推薦, TBD 解決辦法: 在app.js [resources/assets/js/app.js] 中加入如下代碼: window.Event = new Vue();如下: 並且將引入event.js的代碼註釋或刪除 再次推送消息, 界面更新. 4. IDE中顯示的問題, UI沒有更新, 是瀏覽器緩存的問題[請強制刷新, 這個問題稍後解決]
5. 補充 Laravel5.8以後 遷移表的約束必須是相同的數據類型,主鍵默認是bigInt類型,所以約束的外鍵也必須是bigInt類型 public function up() }
6. 查看其他用戶主頁, 出現報錯 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous...' 原因可知: sql語句的問題, id未指明是屬於哪個表.
7. 未登錄, 訪問 http://laratwitter.test/users/學院君, 出現報錯. 原因: 因爲調用User模型中的isNot()方法導致出錯, 未登錄時, $auth()->user()->isNot($user) 紅色部分返回值是null, 調用isNot()方法會報錯. 解決辦法: 方式一: 添加中間件(auth)進行登錄認證過濾, 未登錄就直接跳轉到登錄界面.
路由中使用中間件, 見下方截圖.
方式二: 添加判斷, 分爲兩種情況:登錄與未登錄, 主要是處理未登錄情況. 若未登錄, 則顯示'關注'. 若要關注, 需要登錄,然後跳轉到其他用戶主頁頁面. 具體[重新跳轉回其他用戶個人頁面]做法: TBD
補充: Laravel中的Auth::routes爲什麼是這樣寫? https://segmentfault.com/q/1010000012074248 簡單說: 如果使用laravel自帶註冊認證功能, 在web.php路由文件中直接寫Auth::routes; 即可 具體見下面兩個文件: routes/web.php vendor/laravel/framework/src/Illuminate/Routing/Router.php Over ...
後續補充 ... |
4.參考
https://xueyuanjun.com/post/9488 //基於 Laravel + Vue 構建一個類似 Twitter 的 Web 應用 https://forum.vuejs.org/t/event-emit-is-not-a-function-when-trying-to-emit-within-a-component/6223 //解決報錯 https://blog.csdn.net/qq_23000373/article/details/81121533 //laravel 關聯關係 https://segmentfault.com/q/1010000012074248 //Laravel中的Auth::routes爲什麼是這樣寫? https://www.cnblogs.com/M-D-Luffy/p/6899382.html //laravel 登錄後跳轉原來瀏覽的頁面 |
後續補充
...