Search two time then change paginate table record have problem
laravel controller use class but no pass class ?
class PostController extends Controller
{
public function update(Post $post,
before
class PostController extends Controller
{
public function update($post_id,
$post = Post::findOrFail($post_id);
And many more things.
file_put_contents failed to open stream: Permission denied /tmp/cache/views/
php artisan view:clear
https://laracasts.com/discuss/channels/laravel/permission-denied-on-storageframeworkviews
https://laravel.io/forum/07-06-2016-session-permissions-issue
https://laracasts.com/discuss/channels/general-discussion/laravel-framework-file-permission-security
laravel livewire file update Real-Time File Validation mutile files
https://laravel-news.com/livewire-file-upload
use Livewire\Component;
use Livewire\WithFileUploads;
class Show extends Component
{
use WithFileUploads;
public $files = [];
public function updatedFiles() // 即時檢查檔案格式
{
$this->validate([
'files.*' => 'image|max:1024', // 1MB Max
]);
}
public function store()
{
$filenames = collect($this->photos)->map->store('photos');
'files' => $filenames->implode(','),
updatedFiles() is Hook into the “updated”
updatedPhoto public $Photo
updatedPhotos public $photos = []
updatedFile public $file
updatedFiles public $files = []
laravel livewire Name problem
Use - and lowwercase
App/Http/Livewire/Order/DropdownMaterial.php
class DropdownMaterial extends Component
{
resources/views/livewire/order/create.blade.php
@livewire('order.dropdown-material', ['post' => $order_material_id])
Laravel livewire have Big Problem!
Must have Div At first.
<div style="text-align: center">
<button wire:click="increment">+</button>
<h1>{{ $count }}</h1>
</div>
<div>
<button wire:click="increment">+</button>
<h1>{{ $count }}</h1>
<button class="btn btn-success btn-block" wire:click="create">
{{ trans('global.add') }} {{ trans('cruds.order.title_singular') }}
</button>
</div>
laravel livewire namespace
namespace App\Http\Livewire;
use Gate;
use Livewire\Component;
use Symfony\Component\HttpFoundation\Response;
class Orders extends Component
{
public function render()
{
abort_if(Gate::denies('order_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
return view('livewire.order');
}
}
resources/views/livewire/order.blade.php
@extends('layouts.app')
@section('content')
@livewire('order.show')
@endsection
App/Http/Livewire/Order/Show.php
namespace App\Http\Livewire\Order;
public function render()
{
abort_if(Gate::denies('order_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
$this->orders = Order::all();
// Order::where('owner_id', auth()->id())->get(); // 只能看自己
return view('livewire.order.show');
}
resources/views/livewire/order/show.blade.php
{{ virables }}
laravel eloquent orm
[one to one]
Table: User, Phone
Model: User
Relation: return $this->hasOne('App\Phone');
Talbe Phone need have user_id. Auto use User id -> Phone user_id
Table: User, Phone
Model: Phone
Relaion: return $this->belongsTo('App\User');
Table Phone need have user_id. Auto use User id -> User user_id
[one to many]
Table: Post, Comment
Model: Post
Relation: return $this->hasMany('App\Comment');
Table Comment need have post_id. Auto use Post id -> Comment post_id
Table: Post, Comment
Model: Comment
Relaion: return $this->belongsTo('App\Post');
Table Comment need have post_id. Auto Post id -> Comment post_id
[Many To Many]
Table: User, Role, Role_User
Table Role_User must have user_id, role_id
Model: User
way1:
Relaion: return $this->belongsToMany('App\Role', 'role_user');
way2:
Relaion: return $this->belongsToMany('App\Role');
Must database/migrations defined talbe class like "CreateRoleUserPivotTable"
livewire laravel route problem!
protected $namespace = 'App\Http\Controllers';
...
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
Add backup namespace then get problem for livewire. Every route just use App\Http|controllers ooxxooxxooxx.
OLD Way
web.php
Route::resource('users', 'UsersController');
Route::delete('users/destroy', 'UsersController@massDestroy');
Get Error
Route::resource('orders', 'livewire.order');
Route::resource('orders', 'livewire@order');
Route::view('orders', [\App\Http\Livewire\Order::class, 'render']);
Maybe Way
web.php
Route::view('orders', 'livewire.order');
Files:
\app\Http\Livewire\Order.php inside use return view('livewire.order');
\resources\views\livewire\order.blade.php
Get Error
Undefined variable: orders or other ooxxooxx
Alwasy get this Error.
web.php
Route::get('/admin/orders', [\App\Http\Livewire\Order::class, 'render']);
Files:
\app\Http\Livewire\Order.php
And use
return <<<'blade'
blade;
Get plain text @foreach($orders as o$key -> $permission
Same Error.
Beacuse view run first. Only create view then @livewire('')
example:order and orderlist order view for fist(main) load page. orderlist be loaded by order view. order view have @livewire('orderlist'). https://stackoverflow.com/questions/64038485/laravel-livewire-components-or-controllers
or just remove namespace
Route::get('/admin/orders', \App\Http\Livewire\Order::class);
Don't add namespace in app/Http/livewire/ any file. Always get errors.
php auth role is_admin isAdmin or .... check role admin
public function getIsAdminAttribute()
{
return (bool) $this->admin;
}
Auth::user()->isAdmin or auth()->user()->isAdmin
https://laracasts.com/discuss/channels/code-review/how-to-check-user-role-after-login
namespace App;
use App\Role;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function getIsAdminAttribute()
{
return $this->roles->pluck( 'name' )->contains( 'admin' );
}
public function roles()
{
// you will need a role model
// Role::class is equivalent to string 'App\Role'
return $this->belongsToMany( Role::class, 'users_role' );
}
}
LoginController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use Input;
use Validator;
use Redirect;
class LoginController extends Controller
{
//
public function login_post( Request $request )
{
$data = Input::except( array( '_token' ) );
// var_dump($data);
$rule = array(
'email' => 'required|email',
'password' => 'required',
);
$validator = Validator::make( $data, $rule );
if ($validator->fails()) {
// should do something
} else {
// no need to populate $data again with the same values
// $data = Input::except( array( '_token' ) );
if (Auth::attempt( $data )) {
// here i want to check logged in user role
$user = Auth::user();
if ($user->roles->pluck( 'name' )->contains( 'admin' )) {
return Redirect::to( '/admin-dashboard' );
}
return Redirect::to( '/dashboard' );
}
}
}
}
https://laravel.tw/docs/5.2/eloquent-serialization#appending-values-to-json
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/111359/
方法簽名為getXXXAttribute get XXX Attribute So XXX => IsAdmin
public function getIsAdminAttribute()
{
return $this->roles()->where('id', 1)->exists();
}
https://stackoverflow.com/questions/44017571/pass-current-eloquent-into-getxattribute-in-model
public function getIsAdminAttribute()
{
return Admin::where('user_id', $this->id)->count() > 0;
}
Error Running: npm install vue-template-compiler --save-dev --production=false
Error
Additional dependencies must be installed. This will only take a moment.
Running: npm install vue-template-compiler --save-dev --production=false
https://qiita.com/ucan-lab/items/f5bcdfceecffb9def4c5
Use yarn, Not npm
yarn add vue-template-compiler --dev --production=false
yarn run dev
php laravel UI Boostrap jetstream docker-compose
docker-compose up -d
docker-compose exec app composer create-project --prefer-dist laravel/laravel .
== jetstream Livewire !Now No Use
docker-compose exec app composer require laravel/jetstream
docker-compose exec app php artisan jetstream:install livewire --teams
docker-compose exec app php artisan migrate
docker-compose exec web yarn install
docker-compose exec web yarn dev
== jetstream end
== Laravel UI Bootstrap Auth *more easy
docker-compose exec app composer require laravel/ui
docker-compose exec app php artisan ui bootstrap --auth
[ docker-compose exec app php artisan migrate ]
docker-compose exec web yarn install
docker-compose exec web yarn run dev
[ docker-compose exec web yarn add vue-template-compiler --dev --production=false ]
== Laravel UI Bootstrap end
docker-compose exec app composer require doctrine/dbal
docker-compose exec app composer require --dev barryvdh/laravel-ide-helper
docker-compose exec app composer require --dev beyondcode/laravel-dump-server
docker-compose exec app composer require --dev barryvdh/laravel-debugbar
docker-compose exec app composer require --dev roave/security-advisories:dev-master
docker-compose exec app php artisan vendor:publish --provider="BeyondCode\DumpServer\DumpServerServiceProvider"
docker-compose exec app php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
=== remove all
docker-compose down --rmi all --volumes
docker-compose down --volumes
.參考:
blade @can @cannot
https://laravel.com/docs/8.x/authorization#via-blade-templates
https://laravel.com/docs/8.x/authorization
flutter release apk
1. pubspec.yqml
2. local.properties
噴墨
博奕代工
這份報導,還是沒有寫出真正的情況,也是把事情混在一起談,因為並不是每一個進去博奕工作的工程師能了解大部份的情況
她碰到的根本是洗錢中心,不是博奕代工 內容中又把博奕代工和洗錢中心混在一起來談 區分三個角度 1. 線上博奕 2. 博奕代工 3. 洗錢 1. 線上博奕 對我們工程師來的角度來談,在國外“維運“,在合法的地方“維運“就是合法,大公司分工非常細和明確的,工程師只會負責開發遊戲,不負責“維運“ 大公司對於“風控“非常嚴格,一來怕內賊,二來怕一鍋踹,怎麼會混在一起 中小公司才有可能混在一起,也才有可能在一個地方“維運“ 2. 博奕代工 對我們工程師來的角度來談,代工就是幫忙寫遊戲系統、程式,這肯定100%不犯法,大公司會非常嚴格執行這個做法,建立一間公司,主力就是遊戲開發,開發遊戲,賣給台灣公司、外國公司都是合法的 就算是做實體機台(台灣有名就那家),賣給國外一樣合法 中小公司的代工理論上都就是上面所述,實際上會做到1. 的情況,那就會出現同樣問題“維運“,那“維運“到底合不合法,後面討論 3. 洗錢 癈話,一定違法,一定會出問題 “維運“這塊工作內,會有一定違法的兩個點:金流、客服,工程師的“維運“就妙在這裡,不是工程師的人做“維運“,那就要看你是做什麼了,這很清楚了吧! 內文中的點: 1. 拿現金 大公司是不會拿現金給你的,一定會匯給你,而且還會給你保足額的勞健保,該給你的一定給你 中小公司正常也不會拿現金給你的,那什麼時候拿現金,要避稅,可能是公司避,可能是你自己要避稅,都不是這些,那就是現金太多,應該就懂了吧! 2. 看到荷官…… 訓練的話應該是沒問題,實際被運用在台灣內的某角落才算違法吧! 3. 看到桌子…… 這是開發系統一定會需要的,實際被運用在台灣內的某角落才算違法吧! 4. 工作要上繳存簿,這不用想就知道這間公司是不正常的吧!不管是不是博奕,這年代還有人相信要上繳存簿?! 5. 跟政府談? 文內跟政府單位談線上博奕,這思序不清吧!國內連實體博奕都沒有,這些工作都是對國外,就算是出國轉回給內銷用,本質還是國外,國內那管得著,要談的是國外 日本、新加坡之類 6. 中國要求菲律賓停止“新“牌照發放,舊的能用,更好用,更貴,菲律賓不是笨蛋 7. 大量台灣人材... ... 大陸人材更多吧 8. 避免大量年輕人成為洗錢人頭戶,這跟博奕有個鬼關係,意思是沒博奕就沒有洗錢人頭戶?! 都混在一起談,詐騙就不用洗錢人頭戶?!犯毒就不用洗錢人頭戶?!GCP logging winston LoggingWinston severity
const winston = require('winston');
const useFormat = winston.format.combine(
winston.format((info, opts) => {
let level = info.level.toUpperCase();
if(level === 'VERBOSE') {
level = 'DEBUG';
}
info['severity'] = level;
delete info.level;
return info;
})(),
winston.format.json());
const { LoggingWinston } = require('@google-cloud/logging-winston');
const loggingWinston = new LoggingWinston();
const logger = winston.createLogger({
level: 'debug',
format: useFormat,
transports: [
new winston.transports.Console(),
loggingWinston
]
});