Amir_Kh1984
کاربر-
تعداد ارسال ها
33 -
تاریخ عضویت
-
آخرین بازدید
-
Days Won
9
Amir_Kh1984 last won the day on سپتامبر 30 2021
Amir_Kh1984 had the most liked content!
اعتبار در انجمن
17 خوبدرباره Amir_Kh1984
-
درجه
کاربر انجمن
آخرین بازدید کنندگان نمایه
-
ساخت یک ریپازیتوری در لاراول
موضوع پاسخی برای Amir_Kh1984 در یک hossein2 ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام می توانید از لینک های زیر استفاده کنید: https://ditty.ir/posts/repository-pattern-in-laravel-part-1/XOjjn https://ditty.ir/posts/repository-pattern-in-laravel-part-2/5d1En موفق باشید. -
لاراول : ساخت authentication
موضوع پاسخی برای Amir_Kh1984 در یک mehran_sefidiyan ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام از کدهای زیر به ترتیب استفاده کنید: composer update composer require laravel/ui php artisan ui vue --auth امیدوارم که این پاسخ مشکل را بر طرف کرده باشد. موفق باشید.- 2 پاسخ
-
- 1
-
مشکل در استفاده از paginate در لاراول ۸
موضوع پاسخی برای Amir_Kh1984 در یک morteza14 ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام احتمالا شما فایل CSS مربوط به Bootstrap را به صفحه اضافه نکردید.- 4 پاسخ
-
- 1
-
اموزش ست کردن درگاه پرداخت ایدی پی در لاراول
موضوع پاسخی برای Amir_Kh1984 در یک mahdi2904 ارسال کرد در آموزش لاراول - Laravel Tutorial
سلام می توانید از این آموزش استفاده کنید: http://jsmaster.ir/آموزش-اتصال-laravel-به-شبکه-پرداخت-پِی/ -
عدم ساخت پروژه جدید
موضوع پاسخی برای Amir_Kh1984 در یک جانعلی پور ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام ابتدا وارد Command Prompt شوید و با توجه به مسیر نصب WampServer دستور زیر را وارد کنید: cd C:\wamp64\www حال با استفاده از دستور زیر پروژه جدید به نام blog ایجاد کنید: laravel new blog البته می توانید با استفاده از Composer یک پروژه ایجاد کنید: composer create-project --prefer-dist laravel/laravel blog ظاهرا شما نام پروژه را وارد نکردید. امیدوارم که این پاسخ مشکل شما را حل کرده باشد. موفق باشید. -
درج در جدول pivot
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام ابتدا وارد مدل Order شده و متد products را بصورت زیر ویرایش کنید: class Order extends Model { public function products() { return $this->belongsToMany(Product::class) ->withPivot('quantity'); } } سپس متد orders در مدل Product را ویرایش کنید: class Product extends Model { public function orders() { return $this->belongsToMany(Order::class)->withPivot('quantity'); } } حال برای درج در جدول محور (pivot) بدین صورت عمل کنید: $order = Order::create($orderData); $productID = is_array($request->get('productID')) ? $request->get('productID') : []; $quantityID = is_array($request->get('quantityID')) ? $request->get('quantityID') : []; $attatchData = array(); foreach ($i = 0; $i < count($productID); $i++) $attatchData[$productID[$i]] = ['quantity' => $quantityID[$i]]; /* $productID = [1, 2, 3] $quantityID = [20, 40, 50] $attatchData = [ '1' => [ 'quantity' => 20], '2' => [ 'quantity' => 40], '3' => [ 'quantity' => 50], ]; */ $order->products()->attach($attatchData); ابتدا باید مقادیر productID و quantityID را در آرایه جدیدی به نام attatchData بدین صورت قرار دهید ؛ یک آرایه انجمنی با کلید های productID و مقادیری بصورت آرایه ( [ quantity' => 20'] ) . با فرض اینکه محصول با شناسه 1 دارای تعداد 20 باشد. ( محصولات با شناسه های 2 و 3 به ترتیب دارای مقادیر 40و 50) بعد از پر کردن آرایه می توانید از متدهای ()attach و ()sync استفاده کنید. امیدوارم که این پاسخ به شما کمک کرده باشد.- 2 پاسخ
-
- 1
-
تغییر ثبت نام کاربر
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
در مرحله اول ثبت نام شما باید نام، موبایل و ایمیل را از کاربر دریافت کنید تا ثبت نام انجام شود. کد تایید ثبت نام هم بصورت تصادفی ایجاد و در یک session ذخیره می شود. در انتهای متد ()create در کلاس RegisterController نشست را ایجاد نمایید. یک session با نام user-xxx و مقدار موبایل کاربر ایجاد می شود.(xxx شناسه (id) کاربر است) protected function create(array $data) { $user = User::create([ 'name' => $data['name'], 'phone' => $data['phone'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); session()->put('user-' . $user->id, $data['phone']); return $user; } حال کاربر باید کد تایید را در فرم مربوطه وارد نمایید. فرض بر آن است که مسیر (Route) مربوطه را در فایل web.php بصورت زیر تعریف کرده باشید. Route::get('/register/verify/{user}', 'UserController@verify')->middleware('check-verify')->name('register.verify'); در میان افزار CheckVerify باید بررسی کنید که آیا کاربر در مدت زمان لازم کد تایید را وارد کرده یا خیر. با اندکی تغییر در کد قبلی (تابع ()handle ) می توانید این کار را انجام دهید. پیشنهاد می کنم که خودتان کد نویسی کنید تا مفاهیم را بهتر یاد بگیرید. موفق باشید.- 7 پاسخ
-
- 1
-
تغییر ثبت نام کاربر
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام در صورتیکه بخواهید فیلد phome به جدول users اضافه کنید باید متغیر fillable$ در کلاس User را بصورت زیر اصلاح کنید. protected $fillable = [ 'name', 'email', 'password', 'phone' ]; سپس وارد کلاس App\Http\Controllers\Auth\RegisterController شوید و متد ()create را ویرایش کنید: return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), 'phone' => $data['family'], ]); نیازی به استفاده از میان افزار Midlleware نیست.اصولا زمانی که بخواهید شرایط خاصی را بررسی کنید از میان افزار استفاده می کنید. برای مثال اگر شما بخواهید کاربران سایت شما در مدت زمان یک ساعت فقط یک دیدگاه برای یک پست خاص ارسال کنند می توانید از یک میان افزار به نام AllowComment بصورت زیر استفاده کنید: namespace App\Http\Middleware; use Carbon\Carbon; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class AllowComment { public function handle($request, Closure $next) { if (auth()->check()) { //dd($request->post_id); $post_id = $request->post_id; $max_count =1; $max_time = 60; $first = Carbon::now()->subMinutes($max_time); $count = auth()->user()->comments() ->where('post_id', $post_id) ->where('created_at', '>=', $first)->count(); if ($count < $max_count) return $next($request); } $msg ='your error message'; return redirect()->back()->with('invalid', $msg); } } امیدوارم که این پاسخ به شما کمک کرده باشد. موفق باشید.- 7 پاسخ
-
- 1
-
ذخیره ی محصولات در سشن
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام برای حذف می توانید از تابع ()unset بصورت زیر استفاده کنید. public function drop(Request $request) { $cart = session()->get('cart'); $id = $request->id; if(isset($cart[$id])) { unset($cart[$id]); // update session session()->put('cart', $cart); if (!sizeof($cart)) { session()->put('cart', []); session()->forget('cart'); } return true; } return false; } از تابع ()forget برای حذف کل session استفاده می شود. برای حذف یک عنصر از session کافی است از تابع ()unset استفاده کنید.- 7 پاسخ
-
- 1
-
ذخیره ی محصولات در سشن
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام شما باید از تابع ()isset استفاده کنید: if(! isset(session()->get('total')[33])) { } کلا در زبان PHP برای بررسی وجود/عدم وجود یک متغیر باید از تابع ()isset استفاده کنید.- 7 پاسخ
-
- 1
-
روابط در لاراول
موضوع پاسخی برای Amir_Kh1984 در یک مهدی ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام همانطور که گفتم شما باید روابط یک به چند را برای جداول دسته بندی (categories) و تصاویر (images) و همچنین تصویر و برچسب (tags) را پیاده سازی نمایید. بعد از پیاده سازی آنها از کد زیر استفاده کنید تا در یک جدول مقادیر id و name و تصاویر و هم چنین برچسب ها(بدون تکرار) را نمایش دهد. <table> <tr> <th>id</th> <th>name</th> <th>images</th> <th>tags</th> </tr> @foreach($categories as $category) <tr> <td>{{ $category->id }}</td> <td>{{ $category->name }}</td> <td> @php $pics = []; @endphp @foreach($category->images()->pluck('src') as $src) $pics[] = $src; @endforeach {{ implode(',', $pics) }} </td> <td> @php $tags = []; @endphp @foreach($category->images()->get() as $image) @foreach($image->tags()->pluck('name') as $name) $tags[] = $name; @endforeach @endforeach {{ get_tags($tags) }} </td> </tr> @endforeach </table> تابع برای حذف عناصر تکراری از یک آرایه بصورت زیر تعریف شده است: function get_tags($tags) { $result = array(); for ($tags as $tag) { if (!in_array($tag, $result)) $result[] = $tag; } return implode(',', $result); } امیدوارم که این پاسخ مشکل شما را برطرف کرده باشد. موفق باشید. -
بدست اوردن ایدی هر سطر
موضوع پاسخی برای Amir_Kh1984 در یک negar_a ارسال کرد در رفع مشکلات و سوالات عمومی پی اچ پی PHP
سلام لطفا کدهای سمت server را هم قرار دهید. در سمت server شما باید مقادیر success و data را ارسال کنید تا به آنها دسترسی داشته باشید. اگر شما بخواهید مقدار value و id را بازیابی کنید نیازی به ajax ندارید. به راحتی با یک دستور ساده jQuery می تواندید هر اطلاعاتی از صفحه را بدست آورید. اصولا زمانی از ajax استفاده می کنید که بخواهید اطلاعاتی را از بانک اطلاعاتی یا یک منبع خارجی (فایل json یا html و... ) استخراج کنید. وقتی شما id هر سطری را بصورت ایستا (static) به سطر (tr) نسبت دهید برای بازیابی آن به ajax نیازی نیست. اگر راجب هدفتون بیشتر توضیح دهید فکر می کنم بهتر بتونم کمک کنم. $('.quantity').change(function (e) { e.preventDefault(); var $this = $(this); var value = $this.val(); var id = $this.parents('tr').attr('id'); alert('value:' + value + ' id:' + id); }); موفق باشید.- 1 پاسخ
-
- 1
-
روابط در لاراول
موضوع پاسخی برای Amir_Kh1984 در یک مهدی ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام اگر بخواهید برای یک دسته بندی (category) خاص تمامی تصاویر مرتبط با انرا بازیابی کنید باید از رابطه یک به چند بین دسته بندی و تصویر استفاده کنید. همین طور برای تصویر و برچسب (tag). اگر هدفتان بازیابی تمامی برچسب های متعلق به یک دسته بندی خاص باشد(جدول تصویر به عنوان واسط) می توانید از رابطه HasManyThrough در مدل Category استفاده کنید. البته می توانید از هر دوی آنها بصورت همزمان استفاده کنید.در حالت کلی بسته به نیازتان می توانید از این روابط استفاده کنید. برای مثال اگر جدول categories شما ستون های id، name، slug و parent داشته باشد و بخواهید از دسته بندی های تو در تو (یک سطحی و یا چند سطحی) استفاده کنید، می توانید یک رابطه یک به چند در داخل مدلCategory تعریف کنید. فرضا اگر بخواهید تمام دسته بندی هایی که زیر مجموعه یک دسته بندی خاص هستند را بدست آورید می توانید تابع children را بصورت زیر تعریف کنید: public function children () { return $this->hasMany(Category::class, 'parent'); } در صورتیکه شما برای یک دسته بندی خاص تابع را فرخوانی کنید، تمام دسته بندی هایی که مقدار فیلد parent آنها با فیلد id دسته بندی مورد نظر برابر باشد، بازیابی می شود. در قطعه کد زیر فرض بر آن است که هر دسته بندی حداکثر یک زیر مجموعه دارد.(پیاده سازی دسته بندی های چند سطحی با استفاده از توابع بازگشتی امکان پذیر است که خارج از حوصله این پست است) <ul> @foreach($categories As $category) <li id='{{ $category->id }}'>{{ $category->name }} @if($category->children) @php $sub_cats = $category->children()->select('id', 'name')->get(); @endphp <ul> @foreach($sub_cats As $sub_cat) <li id='{{ $sub_cat->id }}'>{{ $sub_cat->name }}</li> @endforeach </ul> @endif </li> @endforeach </ul> امیدوارم که این پاسخ مشکل شما را برطرف کرده باشد. موفق باشید. -
راست چین کردن قالب
موضوع پاسخی برای Amir_Kh1984 در یک mahd ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
سلام برای راست چین کردن قالب شما باید دانش کافی در زمینه CSS داشته باشید. اگر از Bootstrap استفاده می کنید باید فایل راست چین شده آن را به صفحه خود اضافه کنید.(البته بعد از اضافه کردن فایل bootstrap.min.css) با یک جستجو می توانید فایل راست چین شده بوت استرپ را پیدا کنید. ثانیا شما باید خود قالب را راست چین نمایید. معمولا اگر خاصیت float عنصری را به right تغییر دهید و تنظیماتی از این قبیل (تغییر margin ، padding ، border-radius و ..... ) به راحتی می توانید قالب را راستچین نمایید. یک فایل راست چین شده بوت استرپ را برای شما قرار دادم. امیدوارم که این پاسخ مشکل شما را حل کرده باشد. موفق باشید. rtl.zip- 2 پاسخ
-
- 1
-
کار نکردن دکمه ارسال form
موضوع پاسخی برای Amir_Kh1984 در یک مهدی ارسال کرد در رفع مشکلات و سوالات عمومی لاراول Laravel
ابتدا حافظه cache مرورگر را پاک کنید. php artisan config:cache در صورت عدم حل مشکل، فرم را در جای دیگری (صفحه دیگر) قرار دهید و مجددا امتحان کنید. یا اینکه به جای متد post از متد get استفاده کنید و نتیجه را بررسی کنید. کلا باید با سعی و خطا مشکل را حل کنید. بازهم تاکید می کنم که فرم شما هیچ مشکلی نداره!!! مشکل از جای دیگه است..... درگیر شدن با خطا ها لازمه یادگیری و کسب مهارت در برنامه نویسی است.....