TỔNG HỢP CÁC KIẾN THỨC VÀ CÁC ĐOẠN CODE DÙNG TRONG CÔNG VIỆC
Các trang web lấy code:
https://www.30secondsofcode.org/
Các kiến thức cơ bản trong php
hàm truy xuất tới phần tử tước đó trong mảng php: prev()
hàm dùng để thêm phần tử vào cuôi mảng: array_push()
hàm để nén 1 chuỗi : GZCOMPRESS()
magic function: https://viblo.asia/p/magic-methods-trong-php-4dbZN7bklYM
hàm nhận dữ liệu trả về từ câu truy vấn database: fetch_array() and fetch_row()
hàm dùng để lấy 1 or nhiều giá trị ngẫu nhiên từ mảng php: array_rand()
Hàm sắp xếp cho mảng
Trong bài viết này, chúng ta sẽ tìm hiểu một số hàm sắp xếp cho mảng dưới đây:
- sort() – sắp xếp theo thứ tự tăng dần (tính theo giá trị);
- rsort() – sắp xếp theo thứ tự giảm dần (tính theo giá trị);
- asort() – sắp xếp mảng kết hợp theo thứ tự tăng dần, tính theo giá trị;
- ksort() – sắp xếp mảng kết hợp (liên kết) theo thứ tự tăng dần tính theo khóa;
- arsort() – sắp xếp mảng kết hợp giảm dần tính theo giá trị;
- krsort() – sắp xếp mảng theo thứ tự giảm dần tính theo khóa;
array_count_values() trong php dùng để đếm số lần trùng lặp giá trị của các phần tử trong mảng
example:
<?php
echo "this is content file test \n";
$num = "1";
$num1 = "2";
echo "<br>";
echo $num + $num1;
#result: 3;
echo "<br>";
$color = "asdfghjkl";
echo $color[2];
echo "<br>";
#result: d
$cor = 1234;
$convert = (array)$cor;
echo $convert[0];
echo "<br>";
#result: arr[0]=1234
$total = "25 students";
#show display: 25 students
$more = 10;
// echo $total + $more;
$total = $total + $more;
echo "$total";
#result: 35
echo "<br>";
#nối chuỗi
$a = "clue";
$a .= "get";
echo "$a";
#result: clueget
?>
Câu lệnh trong laravel
php artisan migrate:rollback --step=1
php artisan migrate --path="./database/migtations/name_table.php
Các đoạn code trong Laravel
format time theo Carbon
Code chuyển ngày sang thứ trong tuần
$weekMap = [
yi 0 => 'SU',
1 => 'MO',
2 => 'TU',
3 => 'WE',
4 => 'TH',
5 => 'FR',
6 => 'SA',
];
$dayOfTheWeek = Carbon::now()->dayOfWeek;
$weekday = $weekMap[$dayOfTheWeek];
https://thewebdev.info/2021/05/01/how-to-loop-through-a-date-range-with-javascript/
lấy ra giá trị trùng lặp, lọc giá trị trùng lập
https://www.codegrepper.com/code-examples/javascript/check+duplicate+in+array+javascript
const names = ['Mike', 'Matt', 'Nancy', 'Adam', 'Jenny', 'Nancy', 'Carl']
const count = names =>
names.reduce((a, b) => ({ ...a,
[b]: (a[b] || 0) + 1
}), {}) // don't forget to initialize the accumulator
const duplicates = dict =>
Object.keys(dict).filter((a) => dict[a] > 1)
console.log(count(names)) // { Mike: 1, Matt: 1, Nancy: 2, Adam: 1, Jenny: 1, Carl: 1 }
console.log(duplicates(count(names))) // [ 'Nancy' ]
- kiểm tra tham số có tồn tại trong mảng hay không
https://stackoverflow.com/questions/22844560/check-if-object-value-exists-within-a-javascript-array-of-objects-and-if-not-add
vd arr = ['a','b','c','d'];
arr.some(i => i == 'c');
// result : true
lấy tất cả các ngày trong 1 khoảng thời gian nhất định
cach 1 : chỉ lấy ngày tháng năm
$period = CarbonPeriod::create('2018-06-14', '2018-06-20');
// Iterate over the period
foreach ($period as $date) {
echo $date->format('Y-m-d');
}
// Convert the period to an array of dates
$dates = $period->toArray();
cach 2: lấy được thứ ngày
$begin = new DateTime('2010-05-01');
$end = new DateTime('2010-05-10');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("l Y-m-d H:i:s\n");
}
lấy data dạng mảng trong cột db ra template laravel
json_decode: chuyển nó về dạng mảng
sau đó foreach
$sentAts = json_decode($data->sent_at);$sentAtText = ' ';if(!empty($sentAts) ){foreach($sentAts as $sent){$sentAtText .= '<p>'.$sent.'</p>';}return $sentAtText;}
query cùng lúc cả 2 trong laravel
whereNotIn('send_type', [2, 3]) send_type != 2 và 3
parse theo carbon
https://carbon.nesbot.com/docs/
Carbon::now(env('TIMEZONE_STRING','Asia/Ho_Chi_Minh'))->dayOfWeek()
lấy dữ liệu trong data from
ví dụ:
<form role="form" method="post" action="/" name="Form"><label>Name</label><input type="text" name="fieldName" required /></form>
document.forms['Form']['fieldName'].value;
['Form'] là tên Form đặt trong name="...."
['fieldName'] là tên set trong name=".." input
lấy các giá trị trùng nhau trong 2 mảng
https://www.php.net/manual/en/function.array-intersect.php
array_intersect($arr1, $arr2);cách check CKEDITOR empty và form empty(js)// CKEDITOR.on('instanceCreated', function(e) {// e.editor.on('contentDom', function() {// e.editor.document.on('keyup', function(event) {// if(CKEDITOR.instances.titleViCKE.getData() == ""){// document.getElementById('message-titleViCKE-error').style.display = 'block';// document.getElementById('message-titleViCKE-error').innerHTML = 'Title (in app) not null';// return false;// }// else{// document.getElementById('message-titleViCKE-error').style.display = 'none';// }// if(CKEDITOR.instances.titleEnCKE.getData() == ""){// document.getElementById('message-titleEnCKE-error').style.display = 'block';// document.getElementById('message-titleEnCKE-error').innerHTML = 'Title (in app) not null';// }// else{// document.getElementById('message-titleEnCKE-error').style.display = 'none';// }// if(CKEDITOR.instances.descriptionEnCKE.getData() == ""){// document.getElementById('message-descriptionEnCKE-error').style.display = 'block';// document.getElementById('message-descriptionEnCKE-error').innerHTML = 'Description (in app) not null';// }// else{// document.getElementById('message-descriptionEnCKE-error').style.display = 'none';// }// if(CKEDITOR.instances.descriptionViCKE.getData() == ""){// console.log("check data: ", CKEDITOR.instances.descriptionViCKE.getData());// document.getElementById('message-descriptionViCKE-error').style.display = 'block';// document.getElementById('message-descriptionViCKE-error').innerHTML = 'Description (in app) not null';// }// else{// document.getElementById('message-descriptionViCKE-error').style.display = 'none';// }// if(CKEDITOR.instances.contentViCKE.getData() == ""){// document.getElementById('message-contentViCKE-error').style.display = 'block';// document.getElementById('message-contentViCKE-error').innerHTML = 'Content (in app) not null';// }// else{// document.getElementById('message-contentViCKE-error').style.display = 'none';// }// if(CKEDITOR.instances.contentEnCKE.getData() == ""){// document.getElementById('message-contentEnCKE-error').style.display = 'block';// document.getElementById('message-contentEnCKE-error').innerHTML = 'Content (in app) not null';// }// else{// document.getElementById('message-contentEnCKE-error').style.display = 'none';// }// });// });// });// function validateForm() {// let checkTabDesEn = document.forms['Form']['description_notification[en]'].value;// let checkTabDesVi = document.forms['Form']['description_notification[vi]'].value;// let checkTabTitleEn = document.forms['Form']['title_notification[en]'].value;// let checkTabTitleVi = document.forms['Form']['title_notification[vi]'].value;// let checkTitleVi = document.forms['Form']['title[vi]'].value;// let checkTitleEn = document.forms['Form']['title[en]'].value;// let checkDescVi = document.forms['Form']['description[vi]'].value;// let checkDescEn = document.forms['Form']['description[en]'].value;// let checkContentVi = document.forms['Form']['content[vi]'].value;// let checkContentEn = document.forms['Form']['content[en]'].value;// if(checkTabDesVi === '' || checkTabTitleVi === '' || checkTitleVi === '' || checkDescVi === '' || checkContentVi === ''){// console.log("check 1: ", checkTabDesVi)// console.log("check 2: ", checkTabTitleVi)// console.log("check 3: ", checkTitleVi)// console.log("check 4: ", checkDescVi)// console.log("check 5: ", checkContentVi)// document.getElementById('message-error').style.display = 'block';// document.getElementById('message-error').innerHTML = 'Please fill in the content in the vietnamese tab';// return false;// }// else if(checkTabDesEn === '' || checkTabTitleEn === '' || checkTitleEn === '' || checkDescEn === '' || checkContentEn === '') {// document.getElementById('message-error').style.display = 'block';// document.getElementById('message-error').innerHTML = 'Please fill in the content in the english tab';// return false;// }else{// document.getElementById('message-error').style.display = 'none';// }// // if(checkTabDesVi === '' && checkTabDesEn === ''){// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Please fill in the content in the english tab';// // return false;// // }// // if(checkTabDesEn === '' || checkTabTitleEn === '') {// // console.log("check 1: ", checkTabDesEn);// // console.log("check 1.1: ", checkTabTitleEn);// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Please fill in the content in the english tab';// // return false;// // }// // if(checkTabDesVi === '' || checkTabTitleVi === '') {// // console.log("check 2: ", checkTabDesVi);// // console.log("check 2.1: ", checkTabTitleVi);// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Please fill in the content in the vietnamese tab';// // return false;// // }// // if(checkTitleVi === '' || checkTitleEn === ''){// // console.log("check 3: ", checkTitleVi);// // console.log("check 3.1: ", checkTitleEn);// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Title (in app) not null';// // return false;// // }// // if(checkDescEn === '' || checkDescVi === ''){// // console.log("check 4: ", checkDescEn);// // console.log("check 4.1: ", checkDescVi);// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Description (in app) not null'// // return false;// // }// // if(checkContentVi === '' || checkContentEn === ''){// // console.log("check 5: ", checkContentVi);// // console.log("check 5.1: ", checkContentEn);// // document.getElementById('message-error').style.display = 'block';// // document.getElementById('message-error').innerHTML = 'Content (in app) not null'// // return false;// // }// }check form theo jquery$(document).on('click', '#submit', function () {// CKEDITOR.replace( 'descriptionViCKE' );// CKEDITOR.replace( 'titleViCKE' );// CKEDITOR.replace( 'descriptionEnCKE' );// CKEDITOR.replace( 'titleEnCKE' );// CKEDITOR.replace( 'contentViCKE' );// CKEDITOR.replace( 'contentEnCKE' );let checkTabDesEn = document.forms['Form']['description_notification[en]'].value;let checkTabDesVi = document.forms['Form']['description_notification[vi]'].value;let checkTabTitleEn = document.forms['Form']['title_notification[en]'].value;let checkTabTitleVi = document.forms['Form']['title_notification[vi]'].value;let checkTitleVi = CKEDITOR.instances.titleViCKE.getData();let checkTitleEn = CKEDITOR.instances.titleEnCKE.getData();let checkDescVi = CKEDITOR.instances.descriptionViCKE.getData();let checkDescEn = CKEDITOR.instances.descriptionEnCKE.getData();let checkContentVi = CKEDITOR.instances.contentViCKE.getData();let checkContentEn = CKEDITOR.instances.contentEnCKE.getData();if(checkTabTitleVi === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Title Notification ( display when mobile phone is locked) must not be empty';return false;}if(checkTabDesVi === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Description Notification ( display when mobile phone is locked) must not be empty';return false;}if(checkTitleVi === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Title (in-app) must not be empty';return false;}if(checkDescVi === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Description (in-app) must not be empty';return false;}if(checkContentVi === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Content (in-app) must not be empty';return false;}if(checkTabTitleEn === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Title Notification ( display when mobile phone is locked) must not be empty';return false;}if(checkTabDesEn === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Description Notification ( display when mobile phone is locked) must not be empty';return false;}if(checkTitleEn === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Title (in-app) must not be empty';return false;}if(checkDescEn === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Description (in-app) must not be empty';return false;}if(checkContentEn === ''){document.getElementById('message-error').style.display = 'block';document.getElementById('message-error').innerHTML = 'Content (in-app) must not be empty';return false;}})
Delete all trong laravelfunction trong controllerpublic function deleteAll(Request $request){// dd($request);$ids = $request->ids;\DB::table("cards")->whereIn('id',explode(",",$ids))->delete();return response()->json(['success'=>"Deleted successfully."]);}\chuyển đổi mảng thành chuỗi trong php dùng explodeexplode(separator,string,limit)
Trong đó:
- separator: ký tự hoặc chuỗi ký tự phân cách sử dụng để phân biệt các phần tử trong chuỗi.
- string: chuỗi cần tách thành mảng.
- limit: xác định số phần tử của mảng đầu ra.
- >0: trả về mảng có số phần tử là limit phần tử đầu
- <0: trả về mảng có số phần tử là limit phần tử cuối
- 0: trả về mảng với 1 phần tử
chuyển chuỗi thành mảng => explode , nối mảng dùng array_merge
0 comments:
Đăng nhận xét