-
المساهمات
4657 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
30
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو بلال زيادة
-
يمكنك جلب السجلات بترتيب تنازلي او أفقي عن طريق الدالة orderBy هكذا بحيث DESC تنازلياً و ASC تصاعدياً User::orderBy('title', DESC)->first(); User::orderBy('title', ASC)->first();
-
ممتاز جدا يمكنك التحقق أكثر عندما تطبعي البيانات في ملف view.
- 23 اجابة
-
- 1
-
-
هل هكذا $aboutus = About::all(); $about =About::whereIn('id', [1,2])->get(); يمكنك استخدام كل استعلام بشكل منفصل.
-
لا داعي للكود التالي $aboutus = About::all(); الثاني يعمل بشكل صحيح مع تغيير $aboutus إلى اسم المودل هكذا $about =About::whereIn('id', [1,2])->get();
-
$users = User::select('name', 'image', 'age')->where('age', '>=', 18)->limit(100)->get(); يمكنك جلب عدة حقول باستخدام دالة select كما في المثال إعلاه, اسماء الحقول داخل دالة select هي اسماء الحقول كما في الجدول في قاعدة البيانات. أما لو كنتي تقصدين كيف يتم ارجاع الحقول جميعها $users = User::where('age', '>=', 18)->limit(100)->get(); $users = User::whereIn('id', [6, 7, 9])->get(); هذه الاستعلامات ترجع جميع الحقول الموجودة لكل سجل وما قمنا بتحديده في دالة where أو whereIn هو الشرط الذي الذي يعود بالنتائج بناء عليه.
- 23 اجابة
-
- 2
-
-
first تستخدم لجلب صف واحد ( سجل واحد ) من الجدول داخل قاعدة البيانات. $user = User::where('id', 1)->first(); ويتم جلب هذا الاستعلام داخل ملف view فمثلاً <p>{{ $user->name }}</p> أما get تستخدم لجلب عدة سجلات على شكل مصفوفة كما في المثال التالي $posts = Post::where('user_id', 1)->get(); ويتم جلب هذا الاستعلام داخل ملف view فمثلاً <table class="table table-bordered table-hover"> <thead> <tr> <th>ID</th> <th>Phone</th> <th>ORDER</th> <th>DATE</th> </tr> </thead> <tbody> @foreach($posts as $post) <tr> <td>{{ $post->id ?? '' }}</td> <td>{{ $post->title ?? '' }}</td> <td>{{ $post->desc ?? '' }}</td> <td>{{ $post->created_at ?? '' }}</td> </tr> @endforeach </tbody> </table> ويمكن استخدام أي دالة loop مثل while , for, foreach لجلب عناصر المصفوفة العائدة من الاستعلام
- 23 اجابة
-
- 1
-
-
يمكنك جلب أي متغير global داخل الكلاس بالطريقة التالية, هو أن تقوم بجعل المتغير global ومن ثم تقوم استدعائه عن طريق $GLOBALS , من خلال الأمثلة ستتضح لك الفكرة. يوجد لدينا ملف db.php <?php $appConfig = array( 'db' => array( 'host' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'database' ), ); ويوجد لدينا ملف index.php <?php require('db.php'); class Teacher { public function __construct() { global $appConfig; echo $appConfig['db']['username']; } } $p = new Teacher(); ?> فلو تلاحظ أننا قمنا بجلب بيانات من المصفوفة بعد أن قمنا بجعل المتغير لها عام و من ثم استدعينا index معين لنطبع نتيجته.
-
يمكن باستخدام Middleware منع و توجبه الزوار و الأعضاء إلى أي صفحة تريدها فمثلا في حالتك هذه ممكن أنشاء middleware باستخدام الأمر التالي php artisan make:middleware UserAuth أو يمكن زيارة الصفحة الخاصة بالتوثيق هنا ثانيا عند تنفيذ هذا الأمر في command سيقوم بأنشاء ملف خاص لِ Middleware في المسار التالي app\Http\Middleware ستجد الملف التالي UserAuth.php في دالة handle ممكن تضع أي شرط لإكمال الدخول إلى route محدد أو توجيه الزائر أو العضو إلى صفحة معينة ما دام الشرط غير صحيح فمثلا public function handle($request, Closure $next) { if (auth()->guard('web')->user()) { return $next($request); } else { return redirect('/404'); } } ومن ثم نذهب للملف التالي في المسار app/Http/Kernel.php ونقوم بوضع مسار Middleware الذي قمنا بأنشائه داخل المصوفة $routeMiddleware 'userauth' => \App\Http\Middleware\UserAuth::class, ومن ثم في ملف الخاص بِ routes نضع في route الذي نريد منع الأعضاء من الدخول إليه Route::post('threads/{thread}/replies', [ReplyController::class, 'store'])->middleware('userauth'); وهكذا تكون عملية توجيه الاعضاء حسب شرط معين, يمكنك زيارة التوثيق الخاص Laravel في الرابط إعلاه.
- 2 اجابة
-
- 1
-
-
لتجنب عدم الاستجابة عند الاتصال بأي api في تطبيق flutter يجب استخدام دالة compute وهذه الدالة تقوم بتشغيل الوظائف المجهدة في الخلفية بحيث لا تؤثر على التطبيق. أيضا من النصائح المتبعة ايضا هي اضافة البيانات المرجعة من api في كلاس Model بحيث تستطيع جلب البيانات وتخزينها في هذا الكلاس Model بحيث تقلل عملية الاستجابة ووقت التنفيذ. الشكل العام لهذه الدالة هو var getData = await compute(function, parameter); بحيث function هي المستقبل أو الوظيفة التي نمررها إلى الدالة. parameter هي البيانات التي تمرر الى function. يمكنك مراجعة دالة compute من هنا ولقد عدلت على الكود الخاص بك واصبح سربعا في الاستجابة import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Hello'), ), body: FutureBuilder<List<Welcome>>( future: getData(), builder: (context, AsyncSnapshot<List> snapshot) { switch (snapshot.connectionState) { case ConnectionState.none: return Center( child: Text('No Connection'), ); break; case ConnectionState.waiting: case ConnectionState.active: return Center( child: CircularProgressIndicator(), ); break; case ConnectionState.done: if (snapshot.hasError) print(snapshot.error); return snapshot.hasData ? WelcomeList(welcome: snapshot.data) : Center( child: CircularProgressIndicator(), ); break; } return Container(); }, ), ); } Future<List<Welcome>> getData() async { var response = await http.get('https://jsonplaceholder.typicode.com/comments'); return compute(welcomeFromJson, response.body); } } // To parse this JSON data, do // // final welcome = welcomeFromJson(jsonString); List<Welcome> welcomeFromJson(String str) => List<Welcome>.from(json.decode(str).map((x) => Welcome.fromJson(x))); String welcomeToJson(List<Welcome> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson()))); class Welcome { Welcome({ this.postId, this.id, this.name, this.email, this.body, }); int postId; int id; String name; String email; String body; factory Welcome.fromJson(Map<String, dynamic> json) => Welcome( postId: json["postId"], id: json["id"], name: json["name"], email: json["email"], body: json["body"], ); Map<String, dynamic> toJson() => { "postId": postId, "id": id, "name": name, "email": email, "body": body, }; } class WelcomeList extends StatelessWidget { final List<Welcome> welcome; WelcomeList({Key key, this.welcome}) : super(key: key); @override Widget build(BuildContext context) { return ListView.builder( itemCount: welcome.length, itemBuilder: (context, i) { return ListTile( title: Text('comment:${welcome[i].name}'), ); }, ); } } وهذه صورة من النتيجة
- 2 اجابة
-
- 1
-
-
لو لاحظت في الكود المستخدم انه يوجد متغير باسم isEnvironmentSandbox وهذا يأخذ قيمة bool يعني true or false إذا أردت تغيير الوضع إلى live mode قم بتغيير قيمة isEnvironmentSandbox إلى false.
- 5 اجابة
-
- 1
-
-
هذا ملف makePayment.dart كاملا بعد التعديل عليه بحيث أصبح مثل التصميم الذي تريده. import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'PaypalPayment.dart'; class MakePayment extends StatefulWidget { @override _MakePaymentState createState() => _MakePaymentState(); } class _MakePaymentState extends State<MakePayment> { var number; TextStyle style = TextStyle(fontFamily: 'Open Sans', fontSize: 15.0); final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); @override void initState() { super.initState(); number = '1.99'; } @override Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, appBar: PreferredSize( preferredSize: Size.fromHeight(45.0), child: new AppBar( backgroundColor: Colors.white, title: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( 'Paypal Payment Example', style: TextStyle( fontSize: 16.0, color: Colors.red[900], fontWeight: FontWeight.bold, fontFamily: 'Open Sans'), ), ], ), ), ), body: Container( padding: EdgeInsets.all(15), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[ Text("Total: 30.53 USD"), Divider( thickness: 2, color: Colors.grey[300], ), Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text("Name"), Text("bbbb"), ], ), Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text("Code"), Container( padding: EdgeInsets.all(10), decoration: BoxDecoration(color: Colors.grey), child: Text("RP62800QL"), ), ], ), Divider( thickness: 2, color: Colors.grey[300], ), SizedBox( height: 10, ), Text("Pay with PayPal"), SizedBox( height: 10, ), Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( width: MediaQuery.of(context).size.width, height: 50, child: RaisedButton( color: Color(0xffffc43a), onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => PaypalPayment(onFinish: number)), ); }, child: RichText( text: TextSpan( text: "Pay ", style: TextStyle(color: Color(0xff013089), fontSize: 25, fontWeight: FontWeight.bold), children: <TextSpan>[ TextSpan(text: 'Pal', style: TextStyle(color: Color(0xff019cde))), ], ), ),/*Text( 'PayPal', textAlign: TextAlign.center, style: TextStyle(fontSize: 30), ),*/ ), ), SizedBox( height: 10, ), Container( width: MediaQuery.of(context).size.width, height: 50, child: RaisedButton( color: Color(0xff2d2e30), onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => PaypalPayment(onFinish: number)), ); }, child: RichText( text: TextSpan( children: [ TextSpan( text: "بطاقة سحب أو ائتمان ", style: TextStyle(color: Colors.white, fontSize: 20,), ), WidgetSpan( child: Icon(Icons.credit_card, size: 20, color: Colors.white,), ), ], ), ) ), ), ], ), ], ), ), ); } }
-
هل من الممكن إرفاق المشروع الخاص بك ؟ سأعمل على تصميم واجهة سلتي كاملاً بحيث تشبه التصميم الذي تريده مع إرفاق طرق الدفع.
- 7 اجابة
-
- 1
-
-
اخي هاي عبارة عن صورة واحدة بتوضع للزبون انه يمكنك باستخدام باي بال أنك تقدر تدفع من حسابك و ايضا من البطاقة الأئتمانية.
- 7 اجابة
-
- 1
-
-
يمكنك صفحة الدفع تغيير شكلها كيف ما تريد بحيث تضع تحت المجموع أي طريقة دفع, يعني مجرد تغيير ستايل الواجهة الأمر متروك لك كيف تخلي شكل الواجهة. عند دخول الزبون للدفع عن طريق بي بال, باي بال تخيره الدفع من حسابه أو من بطاقة أئتمانية. ما بتقدر تغير شكل صفحة بي بال لأنه انتا بتفتحها من ويب فيو في التطبيق.
- 7 اجابة
-
- 1
-
-
تأكد أنه يوجد سجل ليوزر id الخاص به يساوي 1. مثال: <?php $sql = "UPDATE users SET name=?, surname=? WHERE id=?"; $stmt= $pdo->prepare($sql); $stmt->execute([$name, $surname, $id]); ?> إذا بقيت المشكلة هل من الممكن إرفاق الكود في الملف كاملاُ.
-
إذا بتقصد الدفع باستخدام البطاقة الأئتمانية بدون بي بال يجب الأشتراك في بوابة دفع مثل Stripe, Razorpay, 2checkout وغيرها من بوابات الدفع, طبعا كل بوابة دفع لها SDK خاص بالتعامل مع الموبايل, ويمكنك ربط كل بوابة بتطبيقك بشكل كامل بعد قبول حسابك في أي من البوابات هذه. أما بخصوص الدفع من خلال حسابي بي بال و أن يقوم العضو بالدفع من البطاقة الأئتمانية الخاصة به إذا كان رابط حساب بي بال ببطاقة أئتمانية فكالتالي كودك بيكون صحيح إذا كان بيعمل بشكل صحيح و أنه بيخصم من الحساب لمن تدفع باستخدام بي بال فحينها لو العضو رابط حسابه البي بال ببطاقة أئتمانية هين بي بال لو كان حسابه ما فيه المبلغ المطلوب بتخليه يقدر يدفع من بطاقته الأئتمانية. بتمنى تكون وضحت الفكرة.
- 2 اجابة
-
- 1
-
-
في هذا السؤال يمكنك إيجاد ما تريده لقد قام شخص أخر بطرحه و أجبته بشكل مفصل.
- 2 اجابة
-
- 1
-
-
يمكنك استخدام وسم map في HTML بحيث تدرج الصورة ومن ثم تحديد map لها وتحديد الأحداثيات لكل حرف باستخدام خاصية coords. فمثلا <!DOCTYPE html> <html> <body> <img src="planets.gif" width="145" height="126" usemap="#image"> <map name="image"> <area shape="rect" coords="0,0,82,126" href=""> <area shape="circle" coords="90,58,3" href=""> <area shape="circle" coords="124,58,8" href=""> </map> </body> </html> فكل سهم يشير إلى أحداثيات كل منطقة في الصورة بحيث لو قمت بالضغط على أي منطقة محددة تستطيع فعل أي حدث على هذه المنطقة, ممكن ان تقوم بتشغيل صوت , أو التحويل إلى صفحة معينة, أو وضع tooltip على هذه المنطقة, الأمر متروك لك, يمكنك القراءة أكثر عن هذا الوسم بالدخول إلى موسوعة حسوب من هنا وأيضا يمكنك مشاهدة أمثلة على هذا الوسم من هنا. أيضا هذه الوسم يكثر استخدامه في برمجة الألعاب حتى تستفيد من الصورة بوضع أكثر من حدث عليها او تقسيمها إلى مناطق فلو شاهدت التالي تجد ان هذا المثال اكثر وضوحاً من قبله بحيث قمنا بالاستفادة من الصورة و جعلناها مناطق و وكل دائرة هي عبارة عن منطقة. أرجوا قد وضح المثال ووضحت الفكرة لديك.
-
أولا: يجب تعلم HTML كاملاً, لماذا ؟ لانها تمثل لغة ترميز تستخدم في إنشاء و تصميم مواقع الويب, هذه اللغة تحتوي على وسوم (tags) هذه الوسوم عن طريقها تستطيع بناء الموقع (هيكل الموقع) من header أعلى الصفحة, إلى footer أخر الصفحة, إلى sections تكون بين رأس الصفحة و أخر الصفحة, عادة sections هي المتغيرة من صفحة إلى أخرى في الموقع. بعد أن قمنا بتصميم هيكل الموقع, يجب أن نقوم بتنسيق الصفحة كي تكون ملائمة لتظهر للمستخدمين بشكل أفضل و تنسيق رائع وتعطي تجربة مستخدم أفضل, هنا يأتي دور استخدام CSS هذه اللغة تحتوي على Attributes هذه الخواص دورها تنسيق الصفحة فمثلا ممكن ان ننشأ ب html وسم عمل فقرة, فكيف سأقوم بوضع لون لهذه الفقرة ؟ كل ما عليك شو استخدام CSS فمثلاً <html> <body> <p>أهلا بالعالم !</p> </body> </html> هذا كود HTML نضيف له خاصية من خواص CSS لنعطي الفقرة لون أحمر مثلاً <html> <head> <style> p{ color: red; } </style> </head> <body> <p>أهلا بالعالم !</p> </body> </html> كما وضحنا بالمثال انه قمنا باستخدام HTML, CSS لكي نبني و ننسق الصفحة, هل هذا يكفي ؟ الإجابة في بعض المواقع يمكن أن تكفي HTML, CSS في برمجة مواقع ثابتة أي لا تتغير إلا بتغيير الكود المستخدم فيها, وبعض المواقع لا يكفي إلا باستخدام JavaScript مع HTML. CSS لتعطي تفاعلاً أكبر مع المستخدم الذي يزور الصفحة. و لجعل الموقع أكثر تفاعلاً و يكون ديناميكاً في تعامل المستخدمين معه يجب استخدام لغة تستخدم من جانب الخادم وهي لغات كثر فممكن أن تستخدم PHP, Python, Node.js هذه اللغات تستطيع التعامل مع قواعد البيانات و التعامل مع خواص قواعد البيانات CRUD, أي C => Create R => Read U => Update D => Delete فالألية كالتالي: تعلم HTML في البداية. تعلم CSS لتنسيق الصفحات بعد إنشائها باستخدام HTML. تعلم JavaScript لتفاعل الموقع مع المستخدمين. تعلم لغة من طرف الخادم لجعل الموقع ديناميكاً مثل PHP, Python, Node.js. تعلم SQL لتستطيع التعامل مع قواعد البيانات.
-
يمكنك تعلم برمجة مواقع الويب, كل ما يلزمك هو تعلم اللغات المستخدمة في برمجة مواقع الويب مثل HTML, CSS , JavaScript, PHP, Python, Node.js. يمكنك البدء ب html و يمكنك مشاهدة دورات على اليوتيوب تعلمك بناء هيكلية الموقع باستخدام هذه اللغة ومن ثم البدء بلغة css كي تقوم بوضع تنسيقات على الصفحات التي تنشأها باستخدام HTML. أيضا يمكنك تعلم بعدها javascript لتعطي أنيمشن و حركات للصفحة كي يستطيع الزائر التعامل مع الصفحة, و أخيرا يمكنك البدء بلغة تجعل الموقع يتفاعل مع المستخدمين ويخزن البيانات او يعرض عليهم محتويات بشكل ديناميكي باستخدام لغات مثل: PHP, Python, Node.js. ولكن هذا يضل حسب رغبتك في أي تريد التعلم والبدء فيها. بعد اتقان مجال معين يمكنك البدء بمشروعك أو العمل عن بعد عن طريق مواقع العمل الحر.
- 6 اجابة
-
- 1
-
-
يمكنك النظر إلى التوثيق الخاص لشركة paypal و قراءة كيفية ربط paypal مع التطبيق الخاص بك.
- 6 اجابة
-
- 1
-